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();
}
}
}
分享到:
相关推荐
### 如何将图片转换成二进制存储 在IT领域,特别是Web开发中,经常会遇到需要将图片存储到数据库的情况。通常来说,图片文件较大,不适合直接存储在数据库中,但有时为了方便检索或者实现某些特定功能(如在线查看...
在上面的代码中,我们首先使用FileStream和BinaryReader将图片转换成二进制数组,然后使用ADO.NET将其保存到数据库中。 四、从数据库中读取图片 在C#中,可以使用ADO.NET从数据库中读取图片。具体实现代码如下: `...
标题提到的“将图片转换成16进制代码,同时也可将16进制代码转换成jpg图片”是一个涉及到图像处理和二进制数据理解的实用技术。以下是这个过程的详细解释。 1. **图片的二进制表示**: 图片本质上是由像素构成的,...
如果是一个转换后的二进制文件,那么这表明已经完成了一次图片转换,用户可以直接将这个二进制文件应用于他们的单片机项目中。 总的来说,"图片二进制转换器"是一个非常实用的工具,对于从事单片机开发、嵌入式系统...
实现了对上传的图片进行缩放显示,并将图片转换为二进制流(将其保存到数据库中,及实现了将图片存储到数据库中),之后通过动态页面显示生产的图片,避免了上传图片显示的路径问题
本文将深入探讨如何将图片转换为二进制格式,然后生成Base64编码字符串,以及如何将这些字符串重新转换回图片。这个过程在很多场景下都有应用,比如在网络上传输图片数据,或者在数据库中存储图片。 首先,我们需要...
"将图片存放进数据库(转换成二进制流)"这个主题,就是关于如何将图像文件以二进制形式存储到数据库中,然后从数据库中读取并以流的形式展示出来。下面我们将深入探讨这一技术。 首先,我们需要理解什么是二进制流...
同样地,在需要显示图片时,又需要将二进制流还原为图片。本文将详细介绍如何实现这一过程。 #### 一、图片转换为二进制流 首先,我们来看一下如何将一张图片转换为二进制流。这一过程主要涉及文件的读取和字节流...
将图片转换为二进制流后,可以方便地在内存中操作,同时也利于存储到支持二进制数据的数据库字段中。 二、图片上传 在VS2005中,通常使用ASP.NET的FileUpload控件来实现用户选择和上传图片。这个控件允许用户在...
c语言读取图片原理:通过文件流的方式读入到Byte的二进制数组中,之后,使用图像分析算法将图像显示到屏幕上,要将数e799bee5baa6e59b9ee7ad9431333363393564组中的值转换为像素。
标题中的“图像处理-图片转二进制工具”是指一个应用程序,它能够将图像文件转换成二进制数据格式。这种工具通常用于编程或Web开发,以便以更直接的方式处理和展示图片。图像数据在计算机中是以像素的颜色值表示的,...
图片二进制转换涉及到将图像文件转化为一系列的0和1(二进制数据),然后再将这些二进制数据还原成原来的图像。这个过程对于数据存储、传输以及加密等领域非常有用。下面我们将详细探讨这个过程。 一、图片与二进制...
在提供的压缩包中,"读取图片为二进制显示出来"这个文件很可能包含了实现以上步骤的Delphi源代码。代码可能包括了自定义的函数或类,用于读取二进制数据并解析图片。具体实现可能会涉及低级的内存管理和位图操作,如...
做了一个将图片转换成二进制数据导入到数据库中,在将二进制数据取出来,显示到页面上,将二进制数据在生成图片保存到硬盘上。数据库中项目,还原一下,wen.config中数据库连接字符串修改一下。ImagesWriter.htm页面...
通过`MemoryStream`对象和ADO.NET,我们可以方便地将图片转换为二进制流,存入SQL Server数据库,再从数据库中读取出来还原为图片。这种方法广泛应用于各种需要存储图像数据的应用中,如Web应用程序、桌面应用等。
### 二进制数据转换成图片 在计算机科学领域,数据的存储与处理往往涉及到不同格式之间的转换。本文主要探讨如何将二进制数据转换为图片格式,这对于图像处理、数据库存储以及网络传输等场景具有重要意义。 #### ...
1. **图片转换为二进制**: - 图片本质上是像素的数据集合,可以转换为二进制格式。在C#中,我们可以使用`System.Drawing.Image`类加载图片,然后使用`GetBytes()`方法将其转换为字节数组。 2. **数据库操作**: ...
3. **转换成图片**:有了二进制流后,我们需要将其转换为图像对象。在.NET中,可以使用`System.Drawing.Image`类的`FromStream()`方法来实现。传入包含二进制流的MemoryStream对象,即可创建一个Image对象。 4. **...
在IT领域,图片转换工具是一种常见的实用程序,用于将图像文件格式从一种类型转换成另一种。在本案例中,我们关注的是一个特定的转换过程,即将图片文件转换为十六进制表示,这通常用于数据存储、编码或者在某些特定...
这种技术涉及将图片转换为二进制格式,以便更有效地存储和检索。下面我们将详细探讨这个主题。 首先,我们需要理解二进制数据的概念。在计算机中,所有信息都以二进制形式表示,即由0和1组成的数字序列。图片本质上...