首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Scalr图像调整大小更改输出的背景色

Scalr图像调整大小更改输出的背景色
EN

Stack Overflow用户
提问于 2016-11-18 01:40:49
回答 1查看 339关注 0票数 1

我正在使用Scalr调整图像的大小。我对一些图片有问题。Scalr正在更改调整大小的图像的颜色。简而言之,这是我的代码的大纲。我从字节数组中读取文件:

代码语言:javascript
复制
BufferedImage image = ImageIO.read(bis);

然后我使用scalr调整图像的大小:

代码语言:javascript
复制
Scalr.resize(image,
      Scalr.Method.ULTRA_QUALITY, Scalr.Mode.AUTOMATIC, targetWidth, targetHeight);

然后,我将其写入输出文件:

代码语言:javascript
复制
ByteArrayOutputStream baos = new ByteArrayOutputStream();
ImageIO.write(bufferedImage, extension, baos);

调整大小前后的图片类型相同,均为TYPE_4BYTE_ABGR。

原图:

调整大小后的图像:

EN

回答 1

Stack Overflow用户

发布于 2021-04-03 12:11:52

我也有同样的问题。若要解决此问题,应删除图像的alpha通道(如果存在)。

代码语言:javascript
复制
public BufferedImage dropAlphaChannel(BufferedImage src) {
 BufferedImage convertedImg = new BufferedImage(src.getWidth(), src.getHeight(), BufferedImage.TYPE_INT_RGB);
 convertedImg.getGraphics().drawImage(src, 0, 0, null);
 return convertedImg;
}

if (originalImage.getColorModel().hasAlpha()) {
   originalImage = dropAlphaChannel(originalImage);
}

Ref

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40661598

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档