栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

imgscalr与背景红色

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

imgscalr与背景红色

您忽略的其余代码(保存ImageIO)以及正在读取的PNG是否具有透明通道(如@Daft Punk所指出的)在这里很重要。

我愿意打赌$
1,说您的PNG中包含Alpha通道,而JPG不支持Alpha;不幸的是,Java的JPG编码器不知道忽略传入的BufferedImage上的Alpha通道,它将丢弃REAL彩色通道之一(R
/ G / B)以便写出alpha值而不是这些彩色通道之一。

例如,如果您有:

ARGB

Java JPG编码器将写出以下3个通道,认为它们是RGB:

[ARG]

并丢弃BLUE通道。

幸运的是,修复非常简单。只需创建一个新的TYPE_INT_RGB类型的BufferedImage即可,如下所示:

BufferedImage imageToSave = new BufferedImage(imagemJpg.getWidth(), imagemJpg.getHeight(), BufferedImage.TYPE_INT_RGB);

那么您需要使用其Alpha通道“渲染” BufferedImage,以剥离Alpha通道:

Graphics g = imageToSave.getGraphics();g.drawImage(imagemJpg, 0, 0, null);

现在,您可以将生成的 imageToSave 图像另存为JPG,它将看起来不错。

提示 :别忘了,如果您不喜欢图像的外观(模糊,不自然的等),则需要直接将参数传递给Java
JPG编码器,以告诉它不要压缩得太多(请阅读本文)- -这很少有问题,但是在过去,当人们说“
imgscalr看起来很糟糕!”时,问题就出现了。-事实证明BufferedImage确实不错且清晰,但是Java编码器过于积极地压缩结果。

我一直想通过在imgscalr库中添加一些其他IO帮助器来解决Java图像中这些烦人的问题,因此您可以加载文件并保存它们,而不必担心这些琐碎的细节。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/414060.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号