如何为新生成的图像提供分辨率



我可以写入图像,但其默认分辨率为600x450。我想具体说明我自己的决议。

public void save(String path, String name) throws IOException 
{
            int x ;
            int y;
            x=scaled.getHeight();
            y=scaled.getWidth();
            System.out.println(x);
            System.out.println(y);
            if (scaled != null) 
            {  
                name += scaled.getWidth() + "x" + scaled.getHeight();
                ImageIO.write(scaled, "png", new File(path + File.separator + name + ".png"));
            } 
            else 
            {
                throw new NullPointerException("Scaled instance is null");
            }
}

有什么建议吗?

使用此处显示的AffineTransformOp或此处显示的Image#getScaledInstance()

我认为scaled是一个场图像。此外,我假设您没有获得NullPointerException

您可以使用scaled.getImageData().getScaled(int x, int y)返回具有自己的xy的新缩放图像。

像这样:

ImageData newData = scaled.getImageData().scaledTo(int x, int y);
Image newScaledImage = new Image(Display.getCurrent(), newData);
ImageIO.write(newScaledImage , "png", new File(path + File.separator + name + ".png"));
newScaledImage.dispose();

最新更新