package twiedow.videocam; import java.awt.Graphics; import java.awt.geom.AffineTransform; import java.awt.image.AffineTransformOp; import java.awt.image.BufferedImage; import javax.swing.JPanel; public class ImagePanel extends JPanel { private BufferedImage image; public void paint(Graphics g) { super.paint(g); if (image != null) { g.drawImage(image, 0, 0, this); } } public BufferedImage getImage() { return image; } public void setImage(BufferedImage src) { image = null; if (src.getWidth() != getWidth() || src.getHeight() != getHeight()) { double scaleX = getWidth() / (double) src.getWidth(); double scaleY = getHeight() / (double) src.getHeight(); AffineTransform transform = new AffineTransform(); transform.setToScale(scaleX, scaleY); image = new AffineTransformOp(transform, null).filter(src, image); } else { image = src; } repaint(); } }