java - 图像未使用 Graphics.drawImage() 缩放

标签 java image swing graphics

我正在创建一个 2D 平台游戏,并尝试使用我创建的自定义库来缩放图像。该代码在调用 dbi.getGraphics() 时给出 NullPointerException。

public void scale(int width, int height) {

        JFrame tempFrame = new JFrame();
        tempFrame.setSize(source.getWidth(null), source.getHeight(null));
        Image dbi = tempFrame.createImage(source.getWidth(null), source.getHeight(null));
        Graphics dbg = dbi.getGraphics(); // NullPointerException
        dbg.drawImage(source, 0, 0, width, height, null);
        source = dbi;

        //BufferedImage temp = (BufferedImage) source;
        //temp.getScaledInstance(width, height, Image.SCALE_DEFAULT);
        //source = temp;

}

我正在使用 dbi.drawImage() 来缩放图像。我尝试过 source.getGraphics().drawImage(source,0,0,width,height,null);,但它不起作用。

最佳答案

此时该框架在您的程序中尚未可见; getGraphics() 无效。而是使用 BufferedImage#createGraphics() ,如图here 。另请考虑 AffineTransformOp,参见 here .

关于java - 图像未使用 Graphics.drawImage() 缩放,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26887758/

相关文章:

java - 为什么我的 Eclipse 没有设置背景颜色?

xcode - 以编程方式更改按钮的背景图像 cocoa obj-c

Android GridView 3 x 6 图像裁剪

java - 关闭 JOptionPane 导致 Java Swing 中的死锁

java - 如何从另一个 GUI 访问元素?

java - 没有调用 AsyncTask 的任何方法

java - 如何根据用户当前位置从解析中获取数据?

java - 如何多次在第二个窗口而不是另一个打开的窗口上获取结果?

java - 这个 getGeneratedKeys() JDBC 语句有什么问题?

php - 从图像中剪切任何形状(Imagik/Gd)