怎么使用 ImageIO 将一个 BufferedImage 保存位为 JPEG 文件时不正常.
为什么一个 BufferedImage 在SWING 中显示时和
使用 ImageIO 保存为 PNG 文件都是正常的.
但保存为 JPEG 文件就不正常.
哪位高手知道怎么处理,谢谢!!
演示代码如下:
package dbb;
import java.awt.image.*;
import java.io.*;
import javax.imageio.*;
public class ImageTools {
public static BufferedImage readImage(String fileName) {
BufferedImage bi = null;
try {
bi = ImageIO.read(new File(fileName));
} catch(IOException ioe) {
ioe.printStackTrace();
}
return bi;
}
public static boolean writeImage(RenderedImage im, String formatName, String fileName) {
boolean result = false;
try {
result = ImageIO.write(im,formatName,new File(fileName));
} catch(IOException ioe) {
ioe.printStackTrace();
}
return result;
}
public static boolean writeJPEGImage(RenderedImage im, String fileName) {
return writeImage(im,"JPEG",fileName);
}
public static boolean writeGIFImage(RenderedImage im, String fileName) {
return writeImage(im,"GIF",fileName);
}
public static boolean writePNGImage(RenderedImage im, String fileName) {
return writeImage(im,"PNG",fileName);
}
public static boolean writeBMPImage(RenderedImage im, String fileName) {
return writeImage(im,"BMP",fileName);
}
public static void main(String[] args) {
BufferedImage bi = ImageTools.readImage("test.jpg");
System.out.println(ImageTools.writeJPEGImage(bi,"tj.jpg"));
}
}