use*_*881 3 java java-io javax.imageio
我想保存一个BufferedImage(名为"result"):
boolean bres = ImageIO.write(result, ".png", new File(saveP));
Run Code Online (Sandbox Code Playgroud)
但是布雷斯总是空的.
这个
ImageIO.getWriterFormatNames()
Run Code Online (Sandbox Code Playgroud)
返回:
jpg BMP bmp JPG jpeg wbmp png JPEG PNG WBMP GIF gif
Run Code Online (Sandbox Code Playgroud)
我应该能够保存为png.
并且BufferedImage的类型是"2"
BufferedImage@137695c: type = 2 DirectColorModel: rmask=ff0000 gmask=ff00 bmask=ff amask=ff000000 IntegerInterleavedRaster: width = 720 height = 576 #Bands = 4 xOff = 0 yOff = 0 dataOffset[0] 0
Run Code Online (Sandbox Code Playgroud)
类型2是"ARGB".
为什么我无法保存BufferedImage?
编辑:saveP ="ex000567.png"
private static void savePNG( final BufferedImage image, final String path ){
try {
RenderedImage rendImage = image;
ImageIO.write(rendImage, "PNG", new File(path));
} catch ( IOException e) {
e.printStackTrace();
}
}
Run Code Online (Sandbox Code Playgroud)
测试此功能.这个对我有用.
重要的变化是第二个参数ImageIO.write将从更改".png"为"PNG"(小写"png"也可以),请参阅ImageIO.getWriterFormatNames()有效名称的输出.
对于在使用 JPEG 文件时遇到此问题的任何人,请确保您的缓冲图像没有 Alpha 通道。否则,com.sun.imageio.plugins.jpeg.JPEGImageWriterSpi#canEncodeImage将拒绝您的形象。
例如,而不是BufferedImage.TYPE_INT_ARGB使用BufferedImage.TYPE_INT_RGB或其他没有 Alpha 通道的东西。
| 归档时间: |
|
| 查看次数: |
1662 次 |
| 最近记录: |