package com.jh.loginwindow;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.Label;
import java.awt.MediaTracker;
import java.awt.Toolkit;
import java.awt.image.BufferedImage;
import java.io.*;
import javax.imageio.ImageIO;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
class TryBufferout extends JFrame{
public static byte[] imageToBytes(Image image, String format) {
BufferedImage bImage = new BufferedImage(image.getWidth(null),
image.getHeight(null), BufferedImage.TYPE_INT_ARGB);
Graphics bg = bImage.getGraphics();
bg.drawImage(image, 0, 0, null);
bg.dispose();
ByteArrayOutputStream out = new ByteArrayOutputStream();
try {
ImageIO.write(bImage, format, out);
} catch (IOException e) {
}
return out.toByteArray();
}
public static void main(String[] args) {
ImageIcon icon = new ImageIcon("D:\\QQ.png");
Image image = icon.getImage();
byte[] b=imageToBytes(image,"png");
Image imagee=bytesToImage(b);
TryBufferout t= new TryBufferout();
t.setSize(400,400);
ImageIcon imag=new ImageIcon();
imag.setImage(imagee);
System.out.println(imag);
t.add(new JLabel(imag));
t.setVisible(true);
}
public static Image bytesToImage(byte[] bytes) {
Image image = Toolkit.getDefaultToolkit().createImage(bytes);
try {
MediaTracker mt = new MediaTracker(new Label());
mt.addImage(image, 0);
mt.waitForAll();
} catch (InterruptedException e) {
}
return image;
}
}
下面也是经过自己的实践所写的代码
package com.jh.loginwindow;
import java.awt.Image;
import java.awt.Label;
import java.awt.MediaTracker;
import java.awt.Toolkit;
import java.io.*;
import java.sql.*;
import javax.swing.ImageIcon;
public class PutImg extends SuperDao {
Statement stmt;
PreparedStatement pstmt = null;
public void putimg() {
String sql = "";
File file = new File("d:\\world.gif");
InputStream photoStream;
try {
photoStream = new FileInputStream(file);
sql = "INSERT INTO testpictrue (image) VALUES (?)";
pstmt = getConnection().prepareStatement(sql);
pstmt.setBinaryStream(1, photoStream, (int) file.length());
pstmt.executeUpdate();
pstmt.close();
} catch (Exception e) {
e.printStackTrace();
}
}
public Image blobRead() throws Exception {
FileOutputStream fos = null;
InputStream is = null;
byte[] Buffer = new byte[4096];
try {
pstmt = getConnection().prepareStatement("select image from testpictrue where id=?");
pstmt.setInt(1, 1); // 传入要取的图片的ID
ResultSet rs = pstmt.executeQuery();
rs.next();
is = rs.getBinaryStream("image");
byte[] b = new byte[is.available()];//声明
is.read(Buffer);//将二进制输入流读入字节数组
Image image= bytesToImage(Buffer);
return image;
} catch (Exception e) {
return null;
} finally {
// 关闭用到的资源
}
}
public Image bytesToImage(byte[] bytes) {
Image image = Toolkit.getDefaultToolkit().createImage(bytes);
try {
MediaTracker mt = new MediaTracker(new Label());
mt.addImage(image, 0);
mt.waitForAll();
} catch (InterruptedException e) {
}
return image;
}
public static void main(String args[]) {
PutImg pi = new PutImg();
try {
Image image=pi.blobRead();
new TryBufferout(image);//在这个界面上显示
} catch (Exception e) {
e.printStackTrace();
}
}
}
分享到:
相关推荐
实现了对上传的图片进行缩放显示,并将图片转换为二进制流(将其保存到数据库中,及实现了将图片存储到数据库中),之后通过动态页面显示生产的图片,避免了上传图片显示的路径问题
将图片转换成二进制流存入数据库和将二进制流转换成图片显示出来;
将图片转换成二进制流存放进数据库,在从数据库同样以流的形式显示出来
用于将图片装换为二进制,在一些单片机显示的编程上可能能够方便的取得图片的二进制模型。
做了一个将图片转换成二进制数据导入到数据库中,在将二进制数据取出来,显示到页面上,将二进制数据在生成图片保存到硬盘上。数据库中项目,还原一下,wen.config中数据库连接字符串修改一下。ImagesWriter.htm页面...
是一款工具软件,它能使你把各种来源的图片转换成特定的数据格式以用来匹配项目软件系统所需要的显示数据格式。Image2Lcd支持的输入图像格式包括: BMP, WBMP, JPG, GIF, WMF, EMF, ICO, 等等。Image2Lcd的输出数据...
FastReport二进制流打印成图片
可以把bmp图片转换成开发板需要的二进制格式 可以用了解底层的图片显示技术,了解lcd的图片显示。
c语言读取图片原理:通过文件流的方式读入到Byte的二进制数组中,之后,使用图像分析算法将图像显示到屏幕上,要将数e799bee5baa6e59b9ee7ad9431333363393564组中的值转换为像素。
首先,您需要将图片的所有像素转换为二进制数组。(黑点是 1,白点是 0,但您可以使用选项标志反转它)。第二步是将所有创建的数字连接成一个字符串,并将其切成 8 位长度的部分。之后,它必须转换为特定的十六进制...
图片存储到数据库保存二进制文件,并在DATAGRIDVIEW中显示出来
把图片批量转换成二进制数据以便快速加载和显示,是个工具类应用
自己做了个简单的图片文件转成二进制数据的小工具,使用说明也附在里面了,有需要的自取。 转换成二进制的图片可以直接用于在html中显示,不必再另外建资源文件夹放置图片。
本工具用于将bmp图片转成OLED显示的二进制数据! 压缩包里面我详细的写了使用方法
把bmp格式的图片转换为2进制编码文件。加载lcd程序可以使其在lcd 上显示
用于将图像转换成二进制,十六进制模式,并可保存为c文件,用于液晶,等离子屏的显示变成
程序将最先分析一些二进制文件,诸如frm/frx,ctl/ctx等文件内的图像文件存储方式,然后把图像文件的Byte数组转换成StdPicture类型,再用PictureBox控件直接显示出图片。要注意,在使用PictureBox的时候,可能后面...
将JPG以二进制文件读出,并用十六进制显示到文本框; 将文本框中的十六进制数据转换成JPG图片文件; 并显示图片,图片显示采用GDI+库。
主要介绍了Android 实现图片转二进制流及二进制转字符串,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
用ASP.NET实现图片存储到数据库,并从数据库中显示所存储的图片。