照片处理(高手请进)
大家好,小弟搞了个小网站玩玩,
其中还制作了一个相册系统(http://www.beuoo.com/photo),
但是在照片缩放转换这个环节,始终很不满意,
因为用户上传的照片经过转换后实在是不够清晰,
我是个完美主义者略带点洁癖,我的相册系统如此,
小弟实在是夜难安寝……
向诸位大虾讨教 java照片缩放后达到最清晰效果的方式方法,实在感激不尽。
当前使用的是最简单的方式,效果差,速度慢,附方法源码如下:
public void cut(int destWidth, int destHeight) {
try {
ImageFilter cropFilter;
Color color = new Color(255,255,255);
int srcWidth = bi.getWidth(); // 源图宽度
int srcHeight = bi.getHeight(); // 源图高度
if(srcWidth<=destWidth&&srcHeight<=destHeight){
return;
}
int x=(srcWidth - destWidth)/2;
int y=(srcHeight - destHeight)/2;
Image image = bi.getScaledInstance(srcWidth, srcHeight,
Image.SCALE_SMOOTH);
// destWidth = 200; // 切片宽度
// destHeight = 150; // 切片高度
cropFilter = new CropImageFilter(x, y, destWidth, destHeight);
//cropFilter.setColorModel(arg0)
img = Toolkit.getDefaultToolkit().createImage(
new FilteredImageSource(image.getSource(), cropFilter));
bi = new BufferedImage(destWidth, destHeight,
BufferedImage.TYPE_INT_RGB);
Graphics g = bi.getGraphics();
g.setColor(color);
g.fillRect(0, 0, bi.getWidth(), bi.getHeight());
g.drawImage(img, 0, 0, null); // 绘制缩小后的图
g.dispose();
} catch (Exception e) {
e.printStackTrace();
}
}