0

我可以写图像,但它的默认分辨率是 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");
            }
}

有什么建议么?

4

2 回答 2

1

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

于 2013-08-07T10:31:10.523 回答
0

我认为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();
于 2013-08-07T09:27:37.270 回答