SImpleImage解决图片压缩变红问题
2018-03-24 15:57:33
1790次阅读
0个评论
在使用Thumbnailator对某些图片进行缩放、裁剪或者生成缩略图时会蒙上一层红色,原因乃是ImageIO.read()方法读取图片时可能存在不正确处理图片ICC信息的问题,ICC为JPEG图片格式中的一种头部信息,导致渲染图片前景色时蒙上一层红色。
经查询相关资料后发现可以用阿里巴巴的SImpleImage可以解决这个问题。
主要依赖以下jar包:commons-io-2.4.jar、commons-lang.jar、commons-logging-1.1.1.jar、jai_codec-1.1.3.jar、jai_core-1.1.3.jar
SimpleImage github地址:https://github.com/alibaba/simpleimage
测试代码:
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import org.apache.commons.io.IOUtils;
import com.alibaba.simpleimage.ImageRender;
import com.alibaba.simpleimage.SimpleImageException;
import com.alibaba.simpleimage.render.ReadRender;
import com.alibaba.simpleimage.render.ScaleParameter;
import com.alibaba.simpleimage.render.ScaleRender;
import com.alibaba.simpleimage.render.WriteRender;
public class Example {
public static void main(String[] args) {
File in = new File("E:/20111014111307895.jpg"); //原图片
File out = new File("E:/testImage.jpg"); //目的图片
ScaleParameter scaleParam = new ScaleParameter(400, 400); //将图像缩略到1024x1024以内,不足1024x1024则不做任何处理
FileInputStream inStream = null;
FileOutputStream outStream = null;
WriteRender wr = null;
try {
inStream = new FileInputStream(in);
outStream = new FileOutputStream(out);
ImageRender rr = new ReadRender(inStream);
ImageRender sr = new ScaleRender(rr, scaleParam);
wr = new WriteRender(sr, outStream);
wr.render(); //触发图像处理
} catch(Exception e) {
e.printStackTrace();
} finally {
IOUtils.closeQuietly(inStream); //图片文件输入输出流必须记得关闭
IOUtils.closeQuietly(outStream);
if (wr != null) {
try {
wr.dispose(); //释放simpleImage的内部资源
} catch (SimpleImageException ignore) {
// skip ...
}
}
}
}
}
00
相关话题
- 前端图片压缩与上传OSS组件
- Vue2.0 移动端拍照压缩图片预览及上传
- 解决kindeditor中onkeydown不执行的问题
- DateTimeFormatter替换SimpleDateFormat解决线程安全问题
- vue使用provide/inject方式解决刷新当前页面问题
- 解决手机竖拍照片旋转90度问题
- Mybatis解决oracle in语句 1000个数限制的问题
- 解决Spring Boot+AngularJS因为跨域导致Session丢失问题
- 解决安卓浏览器文本无法垂直居中的问题
- 解决Docker内部时区和宿主机不一致问题
- Apache commons compress文件打包、压缩
- Apache Commons Compress zip压缩解压
- 解决IE浏览器不支持Spring MVC 文件下载的问题
- RateLimiter限流问题
- zip4j压缩、解压zip文件