我有一个BufferedImage,想要在将它保存为jpg / png之前重新缩放它。
我收到了以下代码:
private BufferedImage rescaleTo(BufferedImage img,int minWidth,int minHeight) {
BufferedImage buf = toBufferedImage(img.getScaledInstance(minWidth, minHeight, Image.SCALE_DEFAULT));
BufferedImage ret = new BufferedImage(buf.getWidth(null),buf.getHeight(null),BufferedImage.TYPE_INT_ARGB);
return ret;
}
public BufferedImage toBufferedImage(Image img) {
BufferedImage ret = new BufferedImage(img.getWidth(null),img.getHeight(null),BufferedImage.TYPE_INT_RGB);
Graphics2D g2 = ret.createGraphics();
g2.drawImage(img,0,0,null);
return ret;
}
public String saveTo(BufferedImage image,String URI) throws UtilityException {
try {
if(image == null)
System.out.println("dododod");
ImageIO.write(image, _type, new File(URI));
} catch (IOException e) {
throw new UtilityException(e.getLocalizedMessage());
}
return URI;
}
但结果我得到一张黑色照片。它必须与重新缩放有关,因为当我跳过它时,我可以保存预期的图片。
答案 0 :(得分:0)
作为测试,设置_type =" png"当你调用ImageIO.write(image,_type,new File(URI))时,也可以使用文件扩展名.png。我有像你描述的问题,我开始写PNG类型,一切正常。不幸的是,我从未回过头来调试为什么我不能写JPG,GIF等类型。