我现在找到一个解决方案,这是工作,至少如果我的结果图像也是一个JPEG:

首先我读取图像(从字节数组imageData),最重要的是,我还读取元数据。

InputStream is = new BufferedInputStream(new ByteArrayInputStream(imageData));

Image src = null;

Iterator it = ImageIO.getImageReadersByMIMEType("image/jpeg");

ImageReader reader = it.next();

ImageInputStream iis = ImageIO.createImageInputStream(is);

reader.setInput(iis, false, false);

src = reader.read(0);

IIOMetadata imageMetadata = reader.getImageMetadata(0);

现在我要做一些转换(即缩小尺寸)…最后我将结果写回为JPEG图像。这里最重要的是将从原始图像获得的元数据传递给新的IIOImage。

Iterator iter = ImageIO.getImageWritersByMIMEType("image/jpeg");

ImageWriter writer = iter.next();

ImageWriteParam iwp = writer.getDefaultWriteParam();

iwp.setCompressionMode(ImageWriteParam.MODE_EXPLICIT);

iwp.setCompressionQuality(jpegQuality);

ImageOutputStream imgOut = new MemoryCacheImageOutputStream(out);

writer.setOutput(imgOut);

IIOImage image = new IIOImage(destImage, null, imageMetadata);

writer.write(null, image, iwp);

writer.dispose();

不幸的是,如果我写一个PNG图像,我仍然得到错误的颜色(即使传递元数据),但我可以忍受。

java图片色差_java – JPEG图像的颜色错误相关推荐

  1. java 图片 黑白_java – 将图像转换为黑白(不是灰色标尺)

    你好我将图像从彩色转换为纯黑色和白色,结果是一个黑暗的图像.我没理由.以下是我的代码,它受到SO上其他代码的启发. 任何指导都会有所帮助. BufferedImage coloredImage = I ...

  2. java图片色差_java – 如何进一步优化这个色差函数?

    我已经做了这个功能来计算CIE Lab颜色空间的颜色差异,但它缺乏速度.既然我不是一个 Java专家,我想知道有没有一些技巧可以在这里提高速度呢? 代码基于注释块中提到的matlab函数. /** * ...

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

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

  4. java 图片旋转_Java实现图片旋转、指定图像大小和水平翻转|chu

    本文实例为大家分享了Java实现图片旋转.指定图像大小.水平翻转,供大家参考,具体内容如下 package com.zeph.j2se.image; import java.awt.Graphics2 ...

  5. java 图片 缩略图_java 图片缩略图的两种方法

    最近网上看到两种不同的java图片缩略图的绘制方案 第一种,使用Graphics().drawImage按照一定的比例重新绘制图像. package com.image.suoluetu; impor ...

  6. java 图片缩略图_java 缩略图实现

    用户上传图片然后生成缩略图显示.以下的代码是本人修改后的.提供给需要的朋友参考参考 ImageHandlerServlet 类 package com.web.util; import java.aw ...

  7. java 图片水印_JAVA实现图片水印

    一.JAVA图片水印实现原理 1.1.JAVA图片水印实现思路 1.创建缓存图片对象. 2.创建Java绘图工具对象. 3.使用绘图工具对象将原图绘制到缓存图片对象. 4.使用绘图工具将水印(文字/图 ...

  8. java图片拷贝_java图片拷贝

    请选择上传的图片或文件: 可以看到,我们将...之后,我们就来编写这个 servlet--UpLoad.java 复制代码 代码如下: package load; import java.io.Fil ...

  9. java图片马赛克_java实现图片缩放、旋转和马赛克化

    本文是作者结合网上的一些资料封装的java图片处理类,支持图片的缩放,旋转,马赛克化. 不多说,上代码: package deal; import java.awt.Color; import jav ...

最新文章

  1. monty python life of brian-50大最搞笑喜剧片,无厘头成必杀技!
  2. python基因差异分析_差异基因
  3. 优雅得使用composer来安装各种PHP小工具
  4. ZOJ 3633 rmq 重点在于转化
  5. 升讯威微信营销系统开发实践:(3)功能介绍与此项目推广过程的一些体会( 完整开源于 Github)...
  6. MINIGUI常见错误集及解决方法
  7. z01、z02.....怎么解压缩
  8. 计算概论(A)/基础编程练习1(8题)/3:晶晶赴约会
  9. 软件測试之独步武林系列(一)
  10. android p wifi一直在扫描_Android Wifi 扫描及自动连接
  11. python中的classmethod_面试题:python 中 staticmethod 和 classmethod有什么区别
  12. 查找某个整数(数组)
  13. C/C++ Linux 程序员必须了解的 10 个工具
  14. 【Android】SDK环境变量配置
  15. java入门必备基础知识(超超超详细讲解)
  16. office972003_为什么我有Microsoft Office Excel 2003打不开Microsoft Office Excel 97-2003格式?...
  17. PON光通道损耗的计算
  18. HBase 数据库检索性能优化策略
  19. 推荐背诵的10篇美文
  20. Linux 文件的属性

热门文章

  1. opencv手册_OpenCV之单目测距实现
  2. 图像处理神经网络python_深度学习使用Python进行卷积神经网络的图像分类教程
  3. 电容器在电路中的作用
  4. 16gU盘在Mac上格式化后在Windows上变成200M
  5. ICE专题:实战分布式的Hello Word 【原创】
  6. 一张图看Docker
  7. Oracle 12C -- temporal validity
  8. MySQL服务器状态变量
  9. 参数修饰符 params、 out、ref
  10. java设计模式(2) - 结构型模式