当前位置:首页 » 编程语言 » java图片转换二进制

java图片转换二进制

发布时间: 2024-02-07 21:54:52

1. java里谁能给我一个将图片转换成二进制在将二进制转换成图片的demo!!!

importjava.awt.image.BufferedImage;
importjava.io.ByteArrayInputStream;
importjava.io.ByteArrayOutputStream;
importjava.io.File;
importjava.io.IOException;

importjavax.imageio.ImageIO;

importsun.misc.BASE64Decoder;
importsun.misc.BASE64Encoder;

publicclassTestImageBinary{
staticBASE64Encoderencoder=newsun.misc.BASE64Encoder();
staticBASE64Decoderdecoder=newsun.misc.BASE64Decoder();

publicstaticvoidmain(String[]args){
System.out.println(getImageBinary());
base64StringToImage(getImageBinary());
}

staticStringgetImageBinary(){
Filef=newFile("c://a.jpg");
BufferedImagebi;
try{
bi=ImageIO.read(f);
ByteArrayOutputStreambaos=newByteArrayOutputStream();
ImageIO.write(bi,"jpg",baos);
byte[]bytes=baos.toByteArray();

returnencoder.encodeBuffer(bytes).trim();
}catch(IOExceptione){
e.printStackTrace();
}
returnnull;
}

staticvoidbase64StringToImage(Stringbase64String){
try{
byte[]bytes1=decoder.decodeBuffer(base64String);

ByteArrayInputStreams=newByteArrayInputStream(bytes1);
BufferedImagebi1=ImageIO.read(s);
Filew2=newFile("c://index//a.bmp");//可以是jpg,png,gif格式
ImageIO.write(bi1,"jpg",w2);//不管输出什么格式图片,此处不需改动
}catch(IOExceptione){
e.printStackTrace();
}
}

}

2. java向mysql数据库上传图片(转化成二进制流)

从io方面考虑,不建议你在mysql存储图片
可以在mysql中保存图片路径,然后读出路径再调用图片
以后也别写这样的代码...

3. 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();//关闭输出流

}

4. java中如何把一个图片转换成二进制流存入到类中啊

1.将Image图像文件存入到数据库中

我们知道数据库里的Image类型的数据是"二进制数据",因此必须将图像文件转换成字节数组才能存入数据库中.

要这里有关数据的操作略写,我将一些代码段写成方法,方便直接调用.

//根据文件名(完全路径)
public byte[] SetImageToByteArray(string fileName)
{
FileStream fs = new FileStream(fileName, FileMode.Open);
int streamLength = (int)fs.Length;
byte[] image = new byte[streamLength];
fs.Read(image, 0, streamLength);
fs.Close();
return image;
}

//另外,在ASP.NET中通过FileUpload控件得到的图像文件可以通过以下方法
public byte[] SetImageToByteArray(FileUpload FileUpload1)
{
Stream stream = FileUpload1.PostedFile.InputStream;
byte[] photo = new byte[FileUpload1.PostedFile.ContentLength];
stream.Read(photo, 0, FileUpload1.PostedFile.ContentLength);
stream.Close();
return photo;
}

2.从SQL Server数据库读取Image类型的数据,并转换成bytes[]或Image图像文件

//要使用SqlDataReader要加载using System.Data.SqlClient命名空间
//将数据库中的Image类型转换成byte[]
public byte[] SetImage(SqlDataReader reader)
{
return (byte[])reader["Image"];//Image为数据库中存放Image类型字段
}

//将byte[]转换成Image图像类型
//加载以下命名空间using System.Drawing;/using System.IO;
using System.Data.SqlClient;*/
public Image SetByteToImage(byte[] mybyte)
{
Image image;
MemoryStream mymemorystream = new MemoryStream(mybyte,0, mybyte.Length);
image = Image.FromStream(mymemorystream);
return image;
}

5. java如何把图片转换成二进制并存到oracle的blob中,求代码

importjavax.imageio.ImageIO;
importjava.awt.image.BufferedImage;
importjava.io.ByteArrayInputStream;
importjava.io.ByteArrayOutputStream;
importjava.io.File;
importjava.io.IOException;


publicclassImageUtils{

publicstaticvoidmain(String[]args){
Stringstr=img2Binary("C:\Users\hny\Desktop\favicon.jpg");
System.out.println(str);
binary2Img("C:\Users\hny\Desktop\favicon2.jpg",str);
}

/**
*图片转二进制字符串
*
*@parampath图片路径
*@return
*/
publicstaticStringimg2Binary(Stringpath){
Filefile=newFile(path);
if(!file.exists()){
returnnull;
}

try{
BufferedImagebi=ImageIO.read(file);
ByteArrayOutputStreambaos=newByteArrayOutputStream();
Stringsuffix=getSuffix(path);
ImageIO.write(bi,suffix,baos);
byte[]bytes=baos.toByteArray();

returnnewsun.misc.BASE64Encoder().encodeBuffer(bytes).trim();
}catch(IOExceptione){
e.printStackTrace();
}
returnnull;
}

/**
*字符串转图片文件
*
*@parampath图片路径
*@paramimgBinary图片字符串
*/
publicstaticvoidbinary2Img(Stringpath,StringimgBinary){
try{
Filefile=newFile(path);

byte[]bytes1=newsun.misc.BASE64Decoder().decodeBuffer(imgBinary);
ByteArrayInputStreams=newByteArrayInputStream(bytes1);
BufferedImagebi1=ImageIO.read(s);
Stringsuffix=getSuffix(path);
ImageIO.write(bi1,suffix,file);
}catch(IOExceptione){
e.printStackTrace();
}
}

/**
*获取图片后缀名
*
*@parampath
*@return
*/
privatestaticStringgetSuffix(Stringpath){
intindex=path.contains(".")?path.lastIndexOf("."):-1;
if(index>-1){
returnpath.substring(index+1);
}
returnnull;
}
}

热点内容
电脑怎么登远程服务器 发布:2024-11-29 12:32:20 浏览:124
先来先服务进程调度算法 发布:2024-11-29 12:30:12 浏览:628
mysql存储过程循环表中的数据 发布:2024-11-29 12:04:02 浏览:600
相机存储器一般是什么 发布:2024-11-29 11:59:51 浏览:295
传奇服务器源码 发布:2024-11-29 11:43:15 浏览:820
新手机如何登录微信密码忘记了 发布:2024-11-29 11:34:34 浏览:544
笔记本配置低怎么玩lol 发布:2024-11-29 11:34:32 浏览:461
如何在iphone上玩安卓号 发布:2024-11-29 11:24:21 浏览:754
服务器店铺怎么取名 发布:2024-11-29 11:19:26 浏览:4
phpapache日志 发布:2024-11-29 11:07:26 浏览:310