JS裁剪图片底部的水印

效果

 

源码 


<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Image Popup</title><style>#popup {display: none;position: fixed;z-index: 1000;left: 0;top: 0;width: 100%;height: 100%;overflow: auto;background-color: rgba(0, 0, 0, 0.8);}#popup img {margin: auto;display: block;max-width: 90%;max-height: 90%;}#popup:target {display: block;}#popupClose {position: absolute;top: 20px;right: 35px;color: #fff;font-size: 40px;font-weight: bold;text-decoration: none;}#popupClose:hover,#popupClose:focus {color: #bbb;text-decoration: none;cursor: pointer;}</style>
</head>
<body><img id="originalImage" src="" alt="Original Image" style="display:none;"><img id="croppedImage" src="" alt="Cropped Image" onclick="showPopup(this.src);"><div id="popup"><a href="#" id="popupClose">&times;</a><img id="popupImg" src="" alt="Popup Image"></div><script>function cropImage(url, cropHeight, callback) {const img = new Image();img.crossOrigin = 'Anonymous'; // Enable CORS if the image is hosted on a different domainimg.onload = function() {const canvas = document.createElement('canvas');const ctx = canvas.getContext('2d');const cropWidth = img.width;const effectiveCropHeight = img.height - cropHeight; // Fixed variable usagecanvas.width = cropWidth;canvas.height = effectiveCropHeight;ctx.drawImage(img, 0, 0, cropWidth, effectiveCropHeight, 0, 0, cropWidth, effectiveCropHeight);const croppedImageDataUrl = canvas.toDataURL();callback(croppedImageDataUrl);};img.onerror = function() {console.error('Failed to load image.');};img.src = url;}function showPopup(src) {const popupImg = document.getElementById('popupImg');popupImg.src = src;window.location.hash = 'popup';}// Example usageconst imageUrl = 'https://gimg2.baidu.com/image_search/src=http%3A%2F%2Fimage109.360doc.com%2FDownloadImg%2F2021%2F08%2F0420%2F227651986_4_20210804085322222&refer=http%3A%2F%2Fimage109.360doc.com&app=2002&size=f9999,10000&q=a80&n=0&g=0n&fmt=auto?sec=1719538441&t=a5b93bb2e329ccf76156ac82bd67e1ec';const watermarkHeight = 70; // Adjust this height to match the watermark heightcropImage(imageUrl, watermarkHeight, function(croppedImageUrl) {document.getElementById('originalImage').src = imageUrl;document.getElementById('originalImage').style.display = 'block';document.getElementById('croppedImage').src = croppedImageUrl;});</script>
</body>
</html>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/18909.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python dict字典

mapping 对象会将 hashable 值映射到任意对象。 映射属于可变对象。 目前仅有一种标准映射类型 字典。 &#xff08;关于其他容器对象请参看 list, set 与 tuple 等内置类&#xff0c;以及 collections 模块。&#xff09; 字典的键 几乎 可以为任何值。 不是 hashable 的值&am…

2024.05.14 校招 实习 内推 面经

绿*泡*泡VX&#xff1a; neituijunsir 交流*裙 &#xff0c;内推/实习/校招汇总表格 1、校招 | 中核集团2025届校园招聘提前批正式启动&#xff01; 校招 | 中核集团2025届校园招聘提前批正式启动&#xff01; 2、实习 | 岚图汽车校园实习生招聘 实习 | 岚图汽车校园实习生…

达梦 结果拼接=多行结果返回一列字符串.

sql 转换 查询出多行数据 (select t.PROPERTY from JD_CODING t left join DELIVERY_OF c on t.VALUE c.TYPE where t.PROPERTY stackingType group by t.PROPERTY) 更改后 转为一列的拼接字符串 ( select listagg( distinct t.PROPERTY,,) within group ( order by t.P…

MiniPCIe/SATA双用插槽无法识别minipcie模块怎么回事!

在计算机和嵌入式系统设计中,MiniPCIe/SATA双用插槽作为一种高度集成的解决方案,提供了极大的灵活性与扩展能力。它不仅能够支持MiniPCIe接口的无线网卡、固态硬盘控制器等模块,还能适应SATA接口的硬盘或固态存储设备,大大丰富了系统配置的可能性。尽管设计初衷良好,但在实…

bert模型用于二分类问题微调

使用bert-base-chinese预训练模型对二分类问题进行微调 import pandas as pd from transformers import BertTokenizerFast, AutoModelForSequenceClassification, Trainer, TrainingArguments import torchmodel_name "./bert-base-chinese" path "./abuse_…

STP19NF20 丝印 19NF20 场效应管19A 200V 直插 TO-220

STP19NF20 功率MOSFET的应用领域相当广泛&#xff0c;主要包括&#xff1a; 1. 电源管理&#xff1a;用于高效率电源管理电路&#xff0c;如直流-直流转换器和交流-直流电源适配器。 2. 开关模式电源&#xff08;SMPS&#xff09;&#xff1a;在需要高效能和紧凑型尺寸的开关…

Ceph相关命令

关于osd自动重启 /etc/crontab里面每隔2分钟会调用 /etc/cron.daily/keep_osd.sh关闭osd 1 mv /etc/cron.daily/keep_osd.sh /etc/cron.daily/keep_osd.sh_back 2 systemctl stop ceph-osd0.service查看osd的参数 ceph daemon osd.0 config show |grep osd_op_num动态修改…

【学习】软件测试小伙伴,这几点助你提升软件测试水平

在数字化时代&#xff0c;软件已经无处不在&#xff0c;影响着我们的日常生活、工作乃至整个社会的运行。在这个背景下&#xff0c;软件测试成为确保产品质量的关键环节&#xff0c;关乎用户体验和社会信任。本文将为您梳理一些关于软件测试你必须了解的知识点&#xff0c;并阐…

JAVAEE之多线程进阶(2)_ CAS概念、实现原理、ABA问题及解决方案

前言 在并发编程时&#xff0c;常常会出现线程安全问题&#xff0c;那么如何保证原子性呢&#xff1f;常用的方法就是加锁。在Java语言中可以使用 Synchronized和CAS实现加锁效果。  Synchronized关键字保证同步的&#xff0c;这会导致有锁&#xff0c;但是锁机制存在以下问题…

判断GIF类型并使用ImageDecoder解析GIF图

一、判断是否为GIF图片类型 在JavaScript中&#xff0c;判断用户上传的文件是否为GIF文件类型时&#xff0c;通常可以通过检查文件的type属性或文件的拓展名来判断&#xff0c;但是由于文件拓展名可以轻易被用户修改&#xff0c;type属性是由浏览器根据文件拓展名猜测得出的&a…

douyin-vue:使用Vue3、Pinia和Vite5打造高度还原的抖音仿制项目

一&#xff1a;引言 在前端技术日新月异的今天&#xff0c;Vue.js作为一款流行的前端框架&#xff0c;不断吸引着开发者的目光。最近&#xff0c;GitHub上出现了一个备受瞩目的项目——douyin-vue&#xff0c;这是一个基于Vue3、Pinia和Vite5的移动端短视频项目&#xff0c;旨…

[解决]windows mysql8.0.x误删除root,解决办法

1. 停止mysql服务 2. 以管理员身份打开命令窗口&#xff0c;进入到mysql安装位置的bin目录下 3. 输入 mysqld --console --skip-grant-tables --shared-memory 注意&#xff1a;a. 很多解决办法是输入mysqld --skip-grant-tables&#xff0c;这在mysql8.0之后的版本已经不在…

ASPICE标准:汽车软件与嵌入式系统开发的黄金准则-亚远景

在高度信息化的现代社会&#xff0c;汽车行业的发展已远超过传统的机械和动力系统&#xff0c;汽车电子和软件系统的重要性日益凸显。为了确保汽车软件的质量和可靠性&#xff0c;汽车行业需要一套统一且高效的开发标准。ASPICE&#xff08;Automotive SPICE&#xff09;标准应…

通过ESP32芯片模组实现产品智能化升级,启明云端乐鑫代理商

随着科技的不断进步&#xff0c;物联网&#xff08;IoT&#xff09;已经渗透到我们生活的方方面面&#xff0c;成为现代生活不可或缺的一部分。在这场智能化革命中&#xff0c;乐鑫科技以其创新的ESP32芯片模组&#xff0c;为智能家居和智能设备的发展注入了新的活力。作为乐鑫…

msi安装mysql8 启动失败,提示只有在任务处于完成状态(RanToCompletion、Faulted 或 Canceled)时才能释放它。

解决方案: 1.打开服务,找到安装的mysql 2. 右击&#xff0c;打开属性&#xff0c;进入【登录】选项卡&#xff0c;选择本地系统账户。 3. 点击确定-->应用 4.服务中选择开始服务 5.服务启动成功后,在安装步骤中继续点击执行

Post Microsoft Build and AI Day 上海开发者日

点击蓝字 关注我们 编辑&#xff1a;Alan Wang 排版&#xff1a;Rani Sun 这个六一怎么过&#xff1f;来微软 Reactor&#xff0c;一起过儿童节吧&#xff01; 6月1日&#xff0c;Microsoft Azure & Microsoft Reactor 面向大小朋友特别推出六一特辑&#xff0c;「Post Mic…

开源进销存系统

推荐一款开源的进销存系统 项目地址&#xff1a;进销存系统 仓库管理系统 SAAS进销存 进销存ERP: 进销存系统 仓库管理系统 SAAS进销存 进销存ERPhttps://gitee.com/flyemu/jxc.git 主要功能模块 销售 采购 库存 资料 设置 支持saas多租户&#xff0c;100%开源可二开 …

前端项目上线要准备哪些问题?

上线前 一般开发过程中&#xff0c;会准备好几条线路&#xff0c;一个是测试环境&#xff0c;一个是正式环境&#xff1b;如果是公司比较大&#xff0c;在此外还会增加一个环境-预上线。 预上线&#xff0c;就是所有的设备&#xff0c;环境&#xff0c;条件和正式线的环境都是一…

iPhone用户推荐使用的藏汉翻译小助手:藏汉翻译通小程序,支持藏文OCR识别文字提取,卫藏语、安多语、康巴语学习背单词!

网上冲浪时&#xff0c;遇到不会的汉语词汇&#xff0c;可以复制到藏汉翻译通小程序中进行翻译。如果不会拼音&#xff0c;可以使用图片识别功能扫一扫文字&#xff0c;即可OCR识别提取文字。 此外&#xff0c;藏汉翻译通小程序现在还支持背单词和会话速成课程&#xff0c;支持…

C# BurnServiceContractClient 使用方法

目录 1. 添加服务引用 2. 使用客户端进行操作 3. 配置文件&#xff08;App.config&#xff09; 4. 异步调用 总结 要在C#中使用BurnServiceContractClient&#xff0c;首先需要了解该客户端的使用场景和目标服务契约。假设BurnServiceContractClient是一个WCF&#xff08;W…