代码修改,根本解决:
一般出现在这样的Java代码段:
FileOutputStream out = new FileOutputStream(dstName);
JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out);
encoder.encode(dstImage);
应该改成这样的Java代码:
String formatName = dstName.substring(dstName.lastIndexOf(".") + 1);
ImageIO.write(dstImage, formatName , new File(dstName) );
都使用统一的ImageIO进行图像格式文件的读写,没有必要使用过时的实现类JPEGImageEncoder类。
注意一般处理图像格式时,使用了下面的类。
import java.awt.image.BufferedImage;
//import com.sun.image.codec.jpeg.JPEGCodec;
//import com.sun.image.codec.jpeg.JPEGImageEncoder;
import javax.imageio.ImageIO;
写成一个方法:
static void saveImage(BufferedImage dstImage, String dstName) throws IOException {
String formatName = dstName.substring(dstName.lastIndexOf(".") + 1);
//FileOutputStream out = new FileOutputStream(dstName);
//JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out);
//encoder.encode(dstImage);
ImageIO.write(dstImage, formatName , new File(dstName) );
}