2013-08-07 30 views
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"); 
      } 
} 

有什么建议吗?

回答

0

我假设scaled是一个字段图像。另外,我会假设你没有得到NullPointerException

您可以使用scaled.getImageData().getScaled(int x, int y)用自己Xÿ返回一个新的缩放图像。

像这样:

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(); 
+0

请引用'getImageData()'和'getScaled()'的API。 – trashgod

+0

是的,我已经做到了。我已经使这件事成为可能。这也是第一次。谢谢大家。 –