Java关于图像文件的相关业务处理
2011-10-27 11:32
344 查看
MySQL使用Blob数据类型存储图像,java (1.6)现在支持bmp,jpg, wbmp, png, gif格式的图像。
1 从数据库中Blob转为java程序中的Image类实体:
java.sql.Blob blob = rs.getBlob("Logo");
InputStream fin = blob.getBinaryStream();
Image im = javax.imageio.ImageIO.read(fin);
2 从数据库中Blob转存为硬盘中的图像文件:
java.sql.Blob blob = rs.getBlob("Logo");
InputStream fin = blob.getBinaryStream();
//用文件模拟输出流
File file = new File("d:\\output.gif");
OutputStream fout = new FileOutputStream(file);
//将BLOB数据写入文件
byte[] b = new byte[1024];
int len = 0;
while ((len = fin.read(b)) != -1) {
fout.write(b, 0, len);
}
3 将磁盘中图像文件存入数据库的BLOB字段中(使用Bytes):
FileInputStream fis = new FileInputStream(“D:\\logo.gif”);
byte[] b = new byte[65000];// 限制图像体积小于65KB
fis.read(b);
rs.updateBytes("Logo", b);
将Bytes数组转为Image:
BufferedImage imag=ImageIO.read(new ByteArrayInputStream(bytearray));
4 将磁盘中文件转为java程序中的Image类实体
Image image = Toolkit.getDefaultToolkit().getImage("D:\\logo.gif");
或
Image image = javax.imageio.ImageIO.read(new FileInputStream("D:\\logo.gif"));
5 将java程序中的Image类实体转为磁盘中文件
Image image;
.......
BufferedImage bufferedImage = (BufferedImage) image;
try {
ImageIO.write(bufferedImage, "PNG", new File("d:\\yourImageName.PNG"));//输出到 png 文件
ImageIO.write(bufferedImage, "JPEG", new File("d:\\yourImageName.JPG"));//输出到 jpg 文件
ImageIO.write(bufferedImage, "gif", new File("d:\\yourImageName.GIF"));//输出到 gif 文件
ImageIO.write(bufferedImage, "BMP", new File("d:\\yourImageName.BMP"));//输出到 bmp 文件
} catch (IOException e) {
e.printStackTrace();
}
6 将java程序中的Image类实体转为Byte数值后,存入数据库Blob字段中:
首先将Image实体转为BufferedImage,可以参考网上的程序,如 http://www.a3gs.com/BookViews.asp?InfoID=3111&classID=953&InfoType=0
Image image;.......
BufferedImage bi=Converter.toBufferedImage(image);
ByteArrayOutputStream baos=new ByteArrayOutputStream(1024);
ImageIO.write(bi, "jpg", baos);
baos.flush();
String base64String=Base64.encode(baos.toByteArray());
baos.close();
byte[] b = Base64.decode(base64String);
rs.updateBytes("Logo", b);
7 得到屏幕中的图像:
robot = new Robot();
BufferedImage bimage = robot.createScreenCapture(new Rectangle(0, 0, 100, 100));
Image image=bimage;
转载地址:http://hi.baidu.com/dcjob/blog/item/cd0cb809d8e43e3ce824886a.html
1 从数据库中Blob转为java程序中的Image类实体:
java.sql.Blob blob = rs.getBlob("Logo");
InputStream fin = blob.getBinaryStream();
Image im = javax.imageio.ImageIO.read(fin);
2 从数据库中Blob转存为硬盘中的图像文件:
java.sql.Blob blob = rs.getBlob("Logo");
InputStream fin = blob.getBinaryStream();
//用文件模拟输出流
File file = new File("d:\\output.gif");
OutputStream fout = new FileOutputStream(file);
//将BLOB数据写入文件
byte[] b = new byte[1024];
int len = 0;
while ((len = fin.read(b)) != -1) {
fout.write(b, 0, len);
}
3 将磁盘中图像文件存入数据库的BLOB字段中(使用Bytes):
FileInputStream fis = new FileInputStream(“D:\\logo.gif”);
byte[] b = new byte[65000];// 限制图像体积小于65KB
fis.read(b);
rs.updateBytes("Logo", b);
将Bytes数组转为Image:
BufferedImage imag=ImageIO.read(new ByteArrayInputStream(bytearray));
4 将磁盘中文件转为java程序中的Image类实体
Image image = Toolkit.getDefaultToolkit().getImage("D:\\logo.gif");
或
Image image = javax.imageio.ImageIO.read(new FileInputStream("D:\\logo.gif"));
5 将java程序中的Image类实体转为磁盘中文件
Image image;
.......
BufferedImage bufferedImage = (BufferedImage) image;
try {
ImageIO.write(bufferedImage, "PNG", new File("d:\\yourImageName.PNG"));//输出到 png 文件
ImageIO.write(bufferedImage, "JPEG", new File("d:\\yourImageName.JPG"));//输出到 jpg 文件
ImageIO.write(bufferedImage, "gif", new File("d:\\yourImageName.GIF"));//输出到 gif 文件
ImageIO.write(bufferedImage, "BMP", new File("d:\\yourImageName.BMP"));//输出到 bmp 文件
} catch (IOException e) {
e.printStackTrace();
}
6 将java程序中的Image类实体转为Byte数值后,存入数据库Blob字段中:
首先将Image实体转为BufferedImage,可以参考网上的程序,如 http://www.a3gs.com/BookViews.asp?InfoID=3111&classID=953&InfoType=0
Image image;.......
BufferedImage bi=Converter.toBufferedImage(image);
ByteArrayOutputStream baos=new ByteArrayOutputStream(1024);
ImageIO.write(bi, "jpg", baos);
baos.flush();
String base64String=Base64.encode(baos.toByteArray());
baos.close();
byte[] b = Base64.decode(base64String);
rs.updateBytes("Logo", b);
7 得到屏幕中的图像:
robot = new Robot();
BufferedImage bimage = robot.createScreenCapture(new Rectangle(0, 0, 100, 100));
Image image=bimage;
转载地址:http://hi.baidu.com/dcjob/blog/item/cd0cb809d8e43e3ce824886a.html
相关文章推荐
- Java处理压缩文件或文件夹相关的一些方法的实现
- 关于java对于大数处理的相关程序和用法
- Java中关于文件上传的基本处理方法Commons-FileUpload
- 关于Eclipse无法重新编译java文件的处理方法之一
- java对图像文件的处理
- 关于java读取excle文件的相关方法 ;
- java数字图像处理基础使用imageio写图像文件示例(转载)
- 关于java对于大数处理的相关程序和用法
- java数字图像处理基础使用imageio写图像文件示例
- 关于WSDL2Java异常记录相关文件
- 例程讲解关于图像处理程序中文件操作时对于STL容器的使用
- 解析关于java,php以及html的所有文件编码与乱码的处理方法汇总
- 关于applet写入文件的处理 选择自 javaduke 的 Blog
- 前言 我们知道不同的操作系统有各自的文件系统,这些文件系统又存在很多差异,而Java 因为是跨平台的,所以它必须要统一处理这些不同平台文件系统之间的差异,才能往上提供统一的入口。 关于FileSy
- 关于Eclipse无法重新编译java文件的处理方法之一
- 大文件处理【java以及数据清洗相关】
- java文件处理相关技术
- 关于小程序&VUE上传文件的java处理方法
- Atitit java读取tif文件为空null的解决 图像处理
- 关于使用java从http接口取数据保存到本地文件的中文乱码处理