java中对图象文件的处理(读写以及转换)
方法一:
(利用imageio类的读写函数)
import javax.imageio.ImageIO;
import java.io.File;
import java.io.IOException;
import java.awt.image.BufferedImage;
public class ChangeImageStyle {
public static void main(String args[]) throws IOException{
File inputFile = new File("test.bmp");
BufferedImage input = ImageIO.read(inputFile);
//转换为gif格式的图片
File outputFile = new File("test.gif");
ImageIO.write(input, "GIF", outputFile);
//转换为jpg格式的图片
outputFile = new File("test.jpg");
ImageIO.write(input, "JPG", outputFile);
//转换为png格式的图片
outputFile = new File("test.png");
ImageIO.write(input, "PNG", outputFile);
}
}
方法二:
如果你已经把某个文件读入,并存为了Image类的一个实例.
转变方法如下:
其中:image为Image类的一个实例
try{
BufferedImage bi = new BufferedImage(image.getWidth(null), image.getHeight(null),BufferedImage.TYPE_INT_RGB);
Graphics2D biContext = bi.createGraphics();
biContext.drawImage(image, 0, 0, null);
FileOutputStream out=new FileOutputStream("./a1.jpeg");
JPEGImageEncoder encoder=JPEGCodec.createJPEGEncoder(out);
JPEGEncodeParam param=encoder.getDefaultJPEGEncodeParam(bi);
param.setQuality(1.0f,false);
encoder.setJPEGEncodeParam(param);
encoder.encode(bi);
out.flush();
out.close();
}catch(Exception EE)
{
System.out.println(EE);
}
方法三:
也就是最笨的方法,弄清楚文件格式,一个字节一个字节的向文件写内容..
总结:最好使用BUFFEREDIMAGE类,免得多了那么多麻烦........