我把图片用AffineTransformOp缩放后,再回到原来的大小,图片就变的模糊不清了
网上查了一下,说是bufferedImage的构造函数用的是int型导致的。可以缩放前保存原图,恢复的时候用原图就可以了。但总想应该有其他不失真的方法吧,要不然java也太。。了吧!那请问各位大虾有没有其他方法啊?谢谢!

解决方案 »

  1.   

    这个和Java本身的实现无关,图像进行仿射变换本身就是有损失的。
    如果你只是需要视觉上的缩放,可以在绘制时设置Graphic对象的缩放比例,而不是真正的去缩放原图。这样的话,只是绘制在画布上时由显示设备去缩放,而原图始终保持不变,这样缩放多次也不会有损失。
    如果是真正的在原图像上进行缩放操作,损失就无法避免了。
      

  2.   

    你缩放的是什么图形,是外部图象还是你自己用JAVA画的图的话,应该不会有什么损失吧,如果是外部的什么JPG等格式图片的话,你每次缩放的时候都用最原始的图片就可以了,这样永远不会失真的,我专门做过放大缩小,还有PDF移动效果,等,做的跟PDF一样效果,JAVA是可以的.是你的方法不对.