感谢Rob的回答,我们现在知道为什么颜色混乱了.

问题是双重的:

> ImageIO用于编写JPEG的默认JPEGImageWriter,不会以其他软件理解的方式编写带有alpha的JPEG(这是一个已知问题).

>当将null作为目标传递给ResampleOp.filter(src,dest)并且过滤器方法是FILTER_TRIANGLE时,将创建一个新的BufferedImage,其中包含alpha(实际上是BufferedImage.TYPE_INT_ARGB).

重新采样后剥离alpha将起作用.但是,还有另一种方法可能更快并节省一些内存.也就是说,不是传递空目标,而是传递适当大小和类型的BufferedImage:

public static void main(String[] args) throws IOException {

// Read input

File input = new File(args[0]);

BufferedImage inputImage = ImageIO.read(input);

// Make any transparent parts white

if (inputImage.getTransparency() == Transparency.TRANSLUCENT) {

// NOTE: For BITMASK images, the color model is likely IndexColorModel,

// and this model will contain the "real" color of the transparent parts

// which is likely a better fit than unconditionally setting it to white.

// Fill background with white

Graphics2D graphics = inputImage.createGraphics();

try {

graphics.setComposite(AlphaComposite.DstOver); // Set composite rules to paint "behind"

graphics.setPaint(Color.WHITE);

graphics.fillRect(0, 0, inputImage.getWidth(), inputImage.getHeight());

}

finally {

graphics.dispose();

}

}

// Resample to fixed size

int width = 100;

int height = 100;

BufferedImageOp resampler = new ResampleOp(width, height, ResampleOp.FILTER_TRIANGLE);

// Using explicit destination, resizedImg will be of TYPE_INT_RGB

BufferedImage resizedImg = resampler.filter(inputImage, new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB));

// Write output as JPEG

ImageIO.write(resizedImg, "JPEG", new File(input.getParent(), input.getName().replace('.', '_') + ".jpg"));

}

java读取图片 去除alpha_java – 从图像中剥离Alpha通道相关推荐

  1. 1、去除图像中的alpha通道或透明度

    自从appstore提交app改变后,虽然提交的流程还是和原来一样,但是相比以前还是有很大的改动,本来就不太喜欢 English,改版之后很多东西都变了,开发一个app就已经够他妈的蛋疼啦,上传一个a ...

  2. 去除图像中的alpha通道或透明度

    自从appstore提交app改变后,虽然提交的流程还是和原来一样,但是相比以前还是有很大的改动,本来就不太喜欢 English,改版之后很多东西都变了,开发一个app就已经够他妈的蛋疼啦,上传一个a ...

  3. java 数字图片识别_java – 识别图像中的数字

    您很可能需要执行以下操作: >在整个页面上应用Hough Transform算法,这应该会产生一系列页面部分. >对于您获得的每个部分,请再次应用.如果当前部分产生2个元素,那么你应该处理 ...

  4. 【APICloud系列|32】iOS 上架去除Icon图像中的alpha通道或透明度

    上架的时候你们有没有遇到过这个问题?? 打开图片的"显示简介",你会发现有个叫"alpha通道"的东西,(如果是"是"你的图片就不能上架)如 ...

  5. 四通道图像中的alpha通道

    在图像处理中,Alpha用来衡量一个像素或图像的透明度.在非压缩的32位RGB图像中,每个像素是由四个部分组成:一个Alpha通道和三个颜色分量(R.G和B).当Alpha值为0时,该像素是完全透明的 ...

  6. java 修改图片dpi_如何在图像中设置DPI信息?

    我在我的项目中将这段代码用于tiff文件,并且效果很好. import java.awt.image.BufferedImage; import java.awt.image.RenderedImag ...

  7. java读取图片、PDF中图片上的文字

    读取图片上的文字 提示:本文是基于tess4j 文章目录 读取图片上的文字 前言 一.tess4j是什么? 二.使用步骤 1.POM引入库 2.实例代码 总结 前言 总是有一些与众不同的需求在等着研发 ...

  8. matlab怎么输出图像文件夹,Matlab读取图片 显示和保存图像的相关操作

    当前有部份朋友还不清楚Matlab读取图片 显示和保存图像的操作,所以下面绿软吧就带来Matlab读取图片 显示和保存图像的相关操作,一起来看看吧! Matlab读取图片 显示和保存图像的相关操作 打 ...

  9. R语言ggpattern填充各种色彩、形状、纹理、图片到ggplot2可视化图像中示例

    R语言ggpattern填充各种色彩.形状.纹理.图片到ggplot2可视化图像中示例 目录 R语言ggpattern填充各种色彩.形状.纹理.图片到ggplot

  10. java读取图片成rgb二维数组

    全栈工程师开发手册 (作者:栾鹏) java教程全解 java读取图片成rgb二维数组 测试代码 public static void main(String[] args) {Color[][] a ...

最新文章

  1. Spring Boot-@EnableWebMvc注解
  2. 哥尼斯堡的“七桥问题” (25 分)【欧拉回路模板题】
  3. php网站搭建致命错误203终止,PHP致命错误:无法重新分配$this
  4. 火种 ctf_分析我的火种数据
  5. (IOS)截图Demo
  6. 路由与交换技术(铺垫内容)
  7. 《AFTrans》来自ViT的免费午餐!北大阿里提出用于细粒度视觉识别的自适应注意多尺度融合Transformer...
  8. C# 代码重启windows服务
  9. 变量的引用类型和非引用类型的区别
  10. 如何快速分享CAD图纸?CAD图纸怎么加密?
  11. 作为一名黑客,通过技术手段发现女朋友出轨了...
  12. 怎么彻底卸载cad2017_cad2017没卸载干净怎么办?
  13. 2019西安交大计算机专业研究生分数线,西安交通大学2019年考研分数线公布
  14. Android:异步处理之Handler+Thread的应用(一)
  15. swift声明属性为某个类型同时遵循某协议
  16. 取消 window 7 激活提示
  17. PARWAN处理器架构特点
  18. 一阶RC低通滤波电路数字化
  19. 统计学习理论简介(一)
  20. SAP中重订货点Reorder Point原理分析及测试

热门文章

  1. 【问题】eletron引入flash显示“无法加载插件”
  2. java判断闰年中闰月_2019年农历闰几月 关于闰年闰月的认识
  3. 微信测试公众号申请配置
  4. 三字经带注解_三字经注释及解析
  5. python2.X 画一个正方体
  6. 连线被拒,请检查主机名称和埠号,并确定 postmaster 可以接受 TCP/IP 连线
  7. 关于Single Image Super Resolution(单幅影像超分辨率重建任务)Bicubic_LRX4影像生成的‘搬运‘想法
  8. FFmpeg —— 为视频添加文字水印(完美解决中文乱码,无需编译)
  9. 百度地图 InfoWindow上添加点击事件
  10. 百度地图标记点加点击事件和鼠标移入事件并添加数据