📄 transformed.java
字号:
import java.awt.*;import java.applet.Applet;import java.awt.image.*;import java.awt.geom.AffineTransform;import java.awt.event.WindowEvent;import java.awt.event.WindowListener;import java.awt.event.WindowAdapter;public class Transformed extends Applet { private BufferedImage bi; private Double angle; private Double x; private Double y; private int kind; private Image ima; float[] elements = { .1111f, .1111f, .1111f, .1111f, .1111f, .1111f, .1111f, .1111f, .1111f}; public Transformed(Image img,Double ang,int a) { kind=a; angle=ang; setBackground(Color.white); try { MediaTracker tracker = new MediaTracker(this); tracker.addImage(img, 0); tracker.waitForID(0); } catch (Exception e) {} int iw = img.getWidth(this); int ih = img.getHeight(this); bi = new BufferedImage(iw, ih, BufferedImage.TYPE_INT_RGB); Graphics2D big = bi.createGraphics(); big.drawImage(img,0,0,this); } public Transformed(Image img,Double sizx, Double sizy,int a) { kind=a; x=sizx; y=sizy; setBackground(Color.white); try { MediaTracker tracker = new MediaTracker(this); tracker.addImage(img, 0); tracker.waitForID(0); } catch (Exception e) {} int iw = img.getWidth(this); int ih = img.getHeight(this); bi = new BufferedImage(iw, ih, BufferedImage.TYPE_INT_RGB); Graphics2D big = bi.createGraphics(); big.drawImage(img,0,0,this); } public void paint(Graphics g) { Graphics2D g2 = (Graphics2D) g; int w = getSize().width; int h = getSize().height; int bw = bi.getWidth(this); int bh = bi.getHeight(this); AffineTransform at = new AffineTransform(); //at.scale(w/2.0/bw, h/1.0/bh); //at.rotate(angle, 0.0, 50.0); //at.getShearInstance(-0.4, 0.0); if(kind==0){at=AffineTransform.getScaleInstance(x, y);} if(kind==1){at=AffineTransform.getRotateInstance(angle, 300.0, 330.0);} BufferedImageOp biop = null; BufferedImage bimg = new BufferedImage(bw,bh,BufferedImage.TYPE_INT_RGB); Kernel kernel = new Kernel(3, 3, elements); ConvolveOp cop = new ConvolveOp(kernel, ConvolveOp.EDGE_NO_OP, null); cop.filter(bi,bimg); biop = new AffineTransformOp(at, AffineTransformOp.TYPE_NEAREST_NEIGHBOR); //g2.drawImage(null, biop, 0, 0); g2.drawImage(bimg, biop,90,30); settheImage((Image)bimg ); //Image abcdef=new Image(); } public void settheImage(Image image){ ima=image; } public Image gettheImage(){ return ima; } /*public static void main(String s[]) { WindowListener l = new WindowAdapter() { public void windowClosing(WindowEvent e) {System.exit(0);} }; Frame f = new Frame("Transformed"); f.addWindowListener(l); f.add("Center", new Transformed()); f.pack(); f.setSize(new Dimension(600, 300)); f.show(); }*/}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -