当前位置: 首页 > 面试题库 >

imgscalr与背景红色

何正德
2023-03-14
问题内容

我正在使用(org.imgscalr.Scalr)库来调整某些图像的大小,但是在调整大小后,背景变成红色。我的代码是:

BufferedImage imagemPng = ImageIO.read(image);
BufferedImage imagemJpg = Scalr.resize(imagemPng, Method.QUALITY, 1920, 937);

你能帮助我吗?

谢谢


问题答案:

您忽略的其余代码(保存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图像中这些烦人的问题,因此您可以加载文件并保存它们,而不必担心这些琐碎的细节。



 类似资料:
  • 我想知道这一点,经过一点挖掘,找到了这个资源,链接在这个答案中。 该资源指出: 背景与背景色 比较18个色板在页面上呈现100次为小矩形,一次带有背景,一次带有背景颜色。 现在,我可以想象要快得多,因为资源也认为: 我认为当浏览器看到

  • 在超文本标记语言中,我什么时候使用颜色,背景颜色和背景标签有什么区别? 有什么区别?

  • 请注意,此错误与其他错误不同,其中字母本身为红色,这是项目文件具有红色背景的地方。请参阅下面的附图。 我相信这是因为它没有被标记为内容根 > < li> 我尝试将代码设置为“项目根目录”,但是无法在右键单击或菜单中“将目录标记为” 在CLion中打开代码,并执行以下操作^ 删除并重新安装它 在<code>中查找。xml(我不知道我在做什么) 我查阅了其他问题,如如何停止pycharm以红色显示项目

  • imgscalr 是一个对图片进行缩放的 Java 类库。 示例代码: import static org.imgscalr.Scalr.*; public static BufferedImage createThumbnail(BufferedImage img) { // Create quickly, then smooth and brighten it. img = resize(

  • 我正在Android应用程序中使用ExoPlayer进行媒体播放。 当您在我的应用程序中打开视频时,我希望视频是可见的,而您可以像任何正常的媒体播放器一样听到音频。 但是,当你关闭应用程序时,我希望音频继续在后台服务中播放,并发出播放、暂停和重新启动内容的通知。 我知道,如果在服务中实例化ExoPlayer,我可以让音频以这种方式运行。但是,为了使视频可见,必须将ExoPlayer实例传递给Pla

  • 问题内容: 我在的色彩设计上遇到麻烦。使用在GNU屏幕中启动的vim会话编辑文件时,文本背景无法正确呈现。在屏幕外的会话中,整个背景是灰色的(应该是灰色的)。对于屏幕内的vim窗口,只有直接在文本后面的背景显示为灰色。其余为黑色。 我有术语集,以在我的两个和。我有 我正在使用。 编辑:我正在通过连接。 问题答案: [为OP填写,请参阅评论] OP发现了问题: 我需要进行以下设置: 这会强制刷新背景