首先导入各种需要的包:
import java.awt.Image;
import javax.imageio.ImageIO;
import java.io.*;
读取图片的方法如下:
Image[] array = new Image[10];
Image image = ImageIO.read(new File("d:\\source.gif"));//根据你实际情况改文件路径吧
array[0] = image;
图片读出来了。
如果你有一个Image对象,想把它写入文件可以这样做:
BufferedImage image = ImageIO.read(new File("d:\\source.gif"));
//要想保存这个对象的话你要把image声明为BufferedImage 类型
ImageIO.write(image, "png", new File("f:\\test.png"));
⑵ java如何传输动态图片(GIF图片)
实现思路:无论是何种类型,都是转换为流的形式进行的文件传输和存储。
可以通过BufferedReader 流的形式进行流缓存,之后通过readLine方法获取到缓存的内容。
BufferedReader bre = null;
OutputStreamWriter pw = null;//定义一个流
try {
String file = "D:/test/test.GIF";
bre = new BufferedReader(new FileReader(file));//此时获取到的bre就是整个文件的缓存流
pw = new OutputStreamWriter(new FileOutputStream(“D:/New.GIF”),"GBK");//确认流的输出文件和编码格式,此过程创建了“test.GIF”实例
while ((str = bre.readLine())!= null) // 判断最后一行不存在,为空结束循环
{
pw.write(str);//将要写入文件的内容,可以多次write
};
bre.close();
pw.close();//关闭流
备注:文件流用完之后必须及时通过close方法关闭,否则会一直处于打开状态,直至程序停止,增加系统负担。
⑶ Java中如何把图片转换成二进制流
使用java的IO流对图片进行二进制读取操作即可
示例为:读取图片为二进制流,并写入到其他图片中
staticvoidtestCopyImage(){
Filesource=newFile("E:\share\Wallpaper\Bliss.jpg");
Filedesk=newFile("d:\images");
if(!desk.exists()){
desk.mkdir();
}
try{
FileInputStreaminputStream=newFileInputStream(source);
FileOutputStreamoutputStream=newFileOutputStream(newFile("d:/images/Bliss.jpg"));
intch=inputStream.read();
while(ch!=-1){
outputStream.write(ch);
ch=inputStream.read();
}
inputStream.close();
outputStream.close();
System.out.println("图片复制成功!");
}catch(FileNotFoundExceptione){
System.out.println("文件不存在:"+e.getMessage());
}catch(IOExceptione){
System.out.println("文件读取错误:"+e.getMessage());
}
}
⑷ java把图片转换成二进制流
public static void main(String[] args) throws Exception {
File file = new File("d:\L.jpg");//图片
FileInputStream fis = new FileInputStream(file);//把图片变成流
FileOutputStream fos = new FileOutputStream(new File("E:\L.jpg")); //把图片流写入E盘
byte[] read = new byte[1024]; //每次读取的字版节 可以自己定义权 256 512 1024 2048 等。。。
int len = 0;
while((len = fis.read(read))!= -1){ //读取变成流的图片
fos.write(read,0,len);//写入图片
}
fis.close();//关闭输入流
fos.close();//关闭输出流
}