图片裁剪的问题?偏色了。。

DustLeon 发布于 2013/01/02 14:58
阅读 1K+
收藏 0

有些图片裁剪之后变成这样了,

其他很多都不会,但是就是会有这样的图片,裁剪完就变成上面那个鬼样了... 尝试了很多第三方的包也是一样的,就高手解救啊~

以下是我裁剪图片的代码:

BufferedImage src = null;
BufferedImage dst = null;
URL url;
try {
    url = new URL(picUrl);
    src = ImageIO.read(url.openStream());
			
    width = width+x > src.getWidth() ? src.getWidth()-x : width;
    height = height+y > src.getHeight() ? src.getHeight()-y : height;
			
    ColorModel dstCM = src.getColorModel();
    dst = new BufferedImage(dstCM, dstCM.createCompatibleWritableRaster(width, height), dstCM.isAlphaPremultiplied(), null);
    Graphics2D g = dst.createGraphics();
    g.drawRenderedImage(src, AffineTransform.getTranslateInstance(-x, -y));
    g.dispose();
			
    ImageIO.write(dst, "JPEG", new File("D://dest.jpg"));
			
} catch(Exception e){
	e.printStackTrace();
}

加载中
0
Diablo.Wu
Diablo.Wu
有可能是jpeg格式的问题,我之前也遇到过,用画图板另存一下,文件尺寸就会变大一点,然后就可以正常处理了。
0
刘学炜
刘学炜

裁剪用这个吧,更好用  http://www.oschina.net/p/thumbnailator

示例代码:

Thumbnails.of(new File("original.jpg"))
        .size(160, 160)
        .rotate(90)
        .watermark(Positions.BOTTOM_RIGHT, ImageIO.read(new File("watermark.png")), 0.5f)
        .outputQuality(0.8f)
        .toFile(new File("image-with-watermark.jpg"));



0
pfdoschina
pfdoschina
关键词:
Java 图片 照片 裁剪 剪切 缩放 偏色 失真 变形


先说点废话:
如果你看到这个问题和这个答案,说明你可能跟我们一样,已经被此问题困惑一阵子了。
大陆互联网的环境较差,分享精神缺失,希望我们每个人都能贡献一份力量,共建一个开放的中文互联网。


回到问题本身:
答案可能有很多种,我们找到了其中一种。
对原始图片进行裁剪操作,一切正常。对上传后的文件进行裁剪,出现偏色现象。调节各种裁剪参数,更换多种裁剪方式,均不奏效。
最后发现,原始图片和上传后的图片,虽然直接打开后视觉效果表现一致,但文件大小变小了。进一步检查发现,图片中的大部分EXIF信息丢失,只剩下最基本的信息。
在上传图片的过程中,使用了集团封装的类库,对文件内容进行安全过滤。我们并不清楚过滤的具体细节,结果由于过度信任而浪费了大量时间。
猜测java的图形处理类库,需要依赖较多的EXIF信息,对此种文件兼容性较差。由于时间原因,未深入探寻。如有更多信息,还望造福众人。


Y29kZW1vbmtleS5jbg==
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部