1.在项目中为了处理用户上传的图片,会对图片进行重写处理,故使用了类似下面的代码:
原图如下:
但发现对于CMYK模式的图片ImageIO.read方法在读取时,会丢失掉ICC信息,从面导致重写后的图片上面蒙受上一层红色如下:
显然对图片质量的影响非常大,在用户体验非常高的互联网上是没法让用户接受的,于是又改用另外一种获取Image对象的方法如下:
但该方法在Windows平台下使用正常,而在Linux平台上总是报异常如下:
然后按照网上的方法,运行的时候加了-Djava.awt.headless=true即 java -Djava.awt.headless=true ClassName 但接着报如下异常:
原因是:Toolkit.getDefaultToolkit()方法中有一句
其实这句话的意思是该程序运行需要有图片环境的支持,后来经过测试,在Linux开了图形窗口后运行也是正常的,但对于生产环境的服务器要开个图形界面是不太现实的,最终放弃了这种方案。经过探索在Linux下只能选用ImageMagick结合JMagick实现,此时能独立于X-11系统,请看下篇,ImageMagick,Jmagick-linux_64安装说明
注意:
1.使用Jimi1.0 版本,保存PICT文件格式时输出的图像宽、高和内存中的图像源一致,可是显示出来却是纯白的。这是 Jimi1.0 版本对写Pict格式的一处 BUG,下载了新的补订类PICTWriter.java 重新编译成PICTWriter.class加入 JimiProClasses.zip 中覆盖原有的 PICTWriter.class,遂写 PICT 格式成功。可以参考官方说明:http://amug.org/~glguerin/other/index.html#PICTWriter 编译时注意要兼容你的JDK版本。
2.关于ImageIO.read()方法读取图片时不能正确处理ICC信息的问题,一般这些图片,是由扫描仪扫描,或者数码相机拍摄,并且处理时,图片的颜色空间(colorspace)为CMYK模式,可以参考官方BUG说明:
http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6245283
http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6404011
另外处理相关ICC信息的代码如下:
其中*.pf色彩文件从
http://java.sun.com/products/java-media/jai/downloads/download-1_0_2.html可取得。
分享到:
相关推荐
NULL 博文链接:https://o-oand0-0.iteye.com/blog/1585854
NULL 博文链接:https://zhangmingji.iteye.com/blog/1969693
javax.imageio-1.0.5.jar, java处理图片的库。 从maven中央仓库下载的。实测可用。
做OCR项目时用到的tesseract相关技术工作包,找起来还蛮麻烦的,放在这里给各位技术朋友们免费下载。
java高级图片处理工具 jai-imageio,可以修改图片分辨率等
com.sun.media.imageio.plugins.tiff.TIFFImageWritePar 报错,很多同学找不到 这个jai_imageio-1.1-alpha.jar 提供下下载
内含: luciad-webp-imageio-2962dd563583 libwebp-0.4.0.tar.gz cmake-3.1.0-rc2-Linux-i386.tar.gz
ImageIo.dll提供了图片处理、格式转换的程序接口
webp-imageio-0.4.2.zip 包含:.jar .so/.dll 涵盖linux 32/64 windows 32/64 版本
Exception in thread “main” javax.imageio.IIOException: Can’t read input file!:无法读取输入文件! 原可以从两个方面分析: 路径中文乱码问题 target/classes文件夹中并没有找到图片 加粗样式看下代码: ...
webp-imageio-10.和1.6(不要积分)
主要介绍了java 使用ImageIO.writer从BufferedImage生成jpeg图像遇到问题总结及解决的相关资料,需要的朋友可以参考下
imageio.jar .
imageio的下载资源,下载之后通过python直接安装到环境就可以使用了
jai_codec-1.1.3.jar jai_core.jar jai_imageio.jar jimi-1.0.jar
使用BitmapFactory加载图片时,如果图片过大可能引起OutOfmemory溢出的问题。解决办法。
TwelveMonkeys, TwelveMonkeys ImageIO 最新版本主分支生成状态: 最新版本是 TwelveMonkeys ImageIO 3.3.2 ( Feb ) 。 2年,2017年,发行说明。TwelveMonkeys ImageIO是 java ImageIO的插件和扩展的C
3个jar包: jai_core-1.1.3.jar jai_imageio.jar jai-codec-1.1.3.jar
imageio 2.3.0版本,下载到本地进行安装,直接pip安装可能因为下载文件速度太慢而报错。安装方法:1.打开cmd 2.安装whl文件,pip install imageio-2.3.0-py2.py3-none-any.whl(依赖会自行安装,下载速度还可以)