怎么用java代码放大或缩小图片不失真。

Python013

怎么用java代码放大或缩小图片不失真。,第1张

放大图像不会导致失真,而缩小图像将不可避免的失真。

Java中也同样是这样。

但java提供了4个缩放的微调选项。

image.SCALE_SMOOTH

//平滑优先

image.SCALE_FAST//速度优先

image.SCALE_AREA_AVERAGING

//区域均值

image.SCALE_REPLICATE

//像素复制型缩放

image.SCALE_DEFAULT

//默认缩放模式

调用方法

Image

new_img=old_img.getScaledInstance(1024,

768,

Image.SCALE_SMOOTH)

得到一张缩放后的新图。

代码不完整,测试不了。/** * 旋转图片为指定角度 * * @param bufferedimage *目标图像 * @param degree *旋转角度 * @return */public static BufferedImage rotateImage(final BufferedImage bufferedimage, final int degree){int w= bufferedimage.getWidth()// 得到图片宽度。int h= bufferedimage.getHeight()// 得到图片高度。int type= bufferedimage.getColorModel().getTransparency()// 得到图片透明度。BufferedImage img// 空的图片。Graphics2D graphics2d// 空的画笔。(graphics2d= (img= new BufferedImage(w, h, type)).createGraphics()).setRenderingHint( RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BILINEAR) graphics2d.rotate(Math.toRadians(degree), w / 2, h / 2)// 旋转,degree是整型,度数,比如垂直90度。graphics2d.drawImage(bufferedimage, 0, 0, null)// 从bufferedimagecopy图片至img,0,0是img的坐标。graphics2d.dispose() return img// 返回复制好的图片,原图片依然没有变,没有旋转,下次还可以使用。}看看别人的写法