图片缩放代码段1
import javax.imageio.ImageIO;
import javax.swing.*;
import javax.swing.plaf.synth.SynthStyle;
import java.awt.geom.AffineTransform;
import java.awt.image.AffineTransformOp;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import java.net.URL;
public class ImageSwing {
private static void printf(Object obj) {
System.out.println("hai:::" + obj);
}
/**
* @param args
* @throws IOException
*/
public static void main(String[] args) throws IOException {
URL resource = ImageSwing.class.getResource("./source/fm1.png");
printf(resource);
BufferedImage sourceImage = ImageIO.read(resource);
Integer wid = sourceImage.getWidth();
printf(wid);
if (wid % 2 == 1) {
BufferedImage dstImage = null;
AffineTransform transform = AffineTransform.getScaleInstance(0.5, 0.5);// 返回表示缩放变换的变换
printf(transform);
AffineTransformOp op = new AffineTransformOp(transform, AffineTransformOp.TYPE_BILINEAR);
dstImage = op.filter(sourceImage, null);
/********** save到本地 *****************/
try {
ImageIO.write(dstImage, "png", new File("E:\\study\\PngPro\\out\\production\\PngPro\\source\\save\\go.png"));
} catch (IOException e) {
e.printStackTrace();
}
}
/********** save end *****************/
// JTabbedPane tabbedPane = new JTabbedPane();
// tabbedPane.add("Source Transform", new JLabel(new ImageIcon(sourceImage)));
// tabbedPane.add("Affine Transform", new JLabel(new ImageIcon(dstImage)));
//
// JFrame jframe = new JFrame();
// jframe.setSize(800, 600);
// jframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
// jframe.getContentPane().add(tabbedPane);
// jframe.setVisible(true);
}
}