PNG图片变成黑色

news/2024/11/24 7:23:39/

png图片透明区域被填充成黑色

关于更多日常使用的公共类的操作方法,可以关注下小滑轮网站

问题:

在用canvas的toDataURL处理png时,发现透明区域被填充成黑色。
为什么canvas会png的透明区域转成黑色呢?
canvas转换之前移除alpha通道,所以透明区域被填充成了黑色。
但是,我们希望的是,canvas可以将png的透明区域填充成白色。
那么怎么将canvas中的透明区域填充成白色呢?
我们有两个方案:

解决方案一:将透明的pixel设成白色

因为png图片的背景都是透明的,所以我们可以寻找透明的pixel,然后将其全部设置成白色,核心代码如下:

// 将canvas的透明背景设置成白色
var imageData = context.getImageData(0, 0, canvas.width, canvas.height);
for(var i = 0; i < imageData.data.length; i += 4) {// 当该像素是透明的,则设置成白色if(imageData.data[i + 3] == 0) {imageData.data[i] = 255;imageData.data[i + 1] = 255;imageData.data[i + 2] = 255;imageData.data[i + 3] = 255; }
}
context.putImageData(imageData, 0, 0);

缺点显而易见。当png图片上存在半透明区域时,会将其填充为黑色。这是我们不希望的

解决方案二:在canvas绘制前填充白色背景

// 在canvas绘制前填充白色背景
context.fillStyle = "#fff";
context.fillRect(0, 0, canvas.width, canvas.height);

显然,在canvas绘制前填充白色背景这种方法,不仅简单,而且对png图片的半透明区域填充难看的黑色块。推荐这种解决方案。
小滑轮网站上还有其他图片处理函数。

  1. 图片下载
  2. 图片转成base64
  3. canvas标签转换成img标签
  4. Base64转Blob对象
  5. 创建一个canvas,并获取 CanvasRenderingContext2D
  6. 内容以文件形式下载下来
  7. 浏览器是否支持webP格式图片

http://www.ppmy.cn/news/323243.html

相关文章

【Photoshop技巧】两步将黑色图片改变颜色

【Photoshop技巧】两步将黑色图片改变颜色 很多时候因为特殊需要,要将一些素材变成其它颜色,试过很多方法,效果都不甚理想,尤其是像以下这种带有渐变色的素材。 以下是原素材图片&#xff1a; 工具/原料 Photoshop 黑白图片素材 方法/步骤 打开photoshop软件&#xff0c;将素材…

关系代数表达式练习(针对难题)

教师关系T&#xff08;T#,TNAME,TITLE&#xff09;课程关系C(C#,CNAME,TNO)学生关系S(S#,SNAME,AGE,SEX)选课关系SC(S#,C#,SCORE) 检索至少选修了C2,C4两门课程的学生学号&#xff1a; 涉及减法相关&#xff1a; 检索不学C2课的学生姓名和年龄 涉及除法相关&#xff1a; 检索…

怎么修复恢复佳能相机0字节DAT视频文件

前面已有文章说明了DAT文件的修复方法&#xff0c;但是还有一个可能&#xff0c;就是DAT为0字节的&#xff0c;0字节就代表文件没有任何数据大小&#xff0c;又该如何处理呢&#xff1f; 0字节是相机没有保存视频数据到文件中&#xff0c;拍摄中有可能一直显示在录制的&#x…

iNode Mac版本下载(亲测兼容M1 Pro)

首先感谢这篇博客提供的解决方法&#xff1a; https://blog.csdn.net/marker_NEW_BIE/article/details/120435796?spm1001.2014.3001.5502 官方下载地址&#xff1a;https://www.h3c.com/cn/Service/Document_Software/Software_Download/IP_Management/iNode/iNode_PC/ 用户名…

snoppa vmate口袋相机的介绍(app下载地址以及固件升级方法)

外观。 价格。 特点。 1&#xff09;便宜。 2&#xff09;镜头可以旋转拍摄不同尺寸的视频。 3&#xff09;可以直播。 4&#xff09;画中画。 5&#xff09;自带手机固定支架。 6&#xff09;三种收音模式。 软件&#xff1a;&#xff08;拍照&#xff0c;视频&#xff0c;全…

如何进行WEB安全测试

WEB的安全性测试主要从以下方面考虑: 目录 1.SQL Injection(SQL注入) 1 2.Cross-site scritping(XSS):(跨站点脚本攻击) 3 3.CSRF:(跨站点伪造请求) 6 4.Email Header Injection(邮件标头注入) 6 5.Directory Traversal(目录遍历) 7 6.exposed error messages(错误信息…

JMF下载安装与支持格式

JMF开发进度不是很快&#xff0c;所以目前还是比较薄弱。 JMF&#xff0c;全名为Java Media Framework&#xff0c;它可以在java applet和application中使用音频&#xff0c;视频或者其他基于时间的多媒体。JMF所支持的多媒体格式如下&#xff1a;AIFF(.aiff)&#xff0c;AVI(…

【软件安装分享】FME使用三年后的使用体验及任意版本安装教程

【软件分享】FME使用三年后的使用体验及安装步骤 FME使用三年后的使用体验 国内代理商网站中文介绍&#xff1a;FME是一款能集成任意数据的软件——且无需写代码对复杂的空间数据呢&#xff1f;完全可以。需要自动化呢&#xff1f;也没问题。 软件官方网站英文介绍&#xff…