Java 在调整帧大小之前,缩放的图像不会正确显示
我正在尝试用仿射变换缩放图像。但是,当帧最初出现时,图像不会正确显示 但在调整帧的大小后,图像会完美地显示出来 这是代码Java 在调整帧大小之前,缩放的图像不会正确显示,java,image,swing,jframe,paint,Java,Image,Swing,Jframe,Paint,我正在尝试用仿射变换缩放图像。但是,当帧最初出现时,图像不会正确显示 但在调整帧的大小后,图像会完美地显示出来 这是代码 public class MainFrame extends javax.swing.JFrame { Line line; BufferedImage bi; public MainFrame() { initComponents(); try { bi = ImageIO.read(new File("map.png"))
public class MainFrame extends javax.swing.JFrame {
Line line;
BufferedImage bi;
public MainFrame() {
initComponents();
try {
bi = ImageIO.read(new File("map.png"));
} catch (Exception ex) {
ex.printStackTrace();
}
}
public void paint(Graphics g) {
Graphics2D g2 = (Graphics2D) g;
AffineTransform old = g2.getTransform();
g2.scale(0.25, 0.25);
g2.drawImage(bi, 0, 0, null);
g2.setTransform(old);
}
...
}
可能是您的
图形
已剪裁到组件的边界。如果要缩放,您可能还需要缩放剪辑边界。1)为了更快地获得更好的帮助,请发布一个(最小完整且可验证的示例)。2) 例如,获取图像的一种方法是热链接到中看到的图像。3) g2.drawImage(bi,0,0,null)代码>应该是g2.drawImage(bi,0,0,this)
重写的paint应该做的第一件事是调用super
方法。这可能是ImageObserver的正确方法,那么JFrame不是任何图形的合适容器。不管怎样,使用带有paintComponent的JPanel,如果没有您的SSCCE/MCVE/MCTRE,就不知道了