图片转换成二进制(Java中如何把图片转换成二进制流)

:暂无数据 2026-09-26 10:50:12 :1

图片转换成二进制(Java中如何把图片转换成二进制流)

大家好,今天小编来为大家解答以下的问题,关于图片转换成二进制,Java中如何把图片转换成二进制流这个很多人还不知道,现在让我们一起来看看吧!

本文目录

Java中如何把图片转换成二进制流

Java中将图片转为二进制流只需要使用FileImageInputStream取得图片文件,然后使用ByteArrayOutputStream 写入到二进制流中即可,下面是详细代码:


  //图片到byte数组
  public byte image2byte(String path){
    byte data = null;
    FileImageInputStream input = null;
    try {
      input = new FileImageInputStream(new File(path));
      ByteArrayOutputStream output = new ByteArrayOutputStream();
      byte;
      int numBytesRead = 0;
      while ((numBytesRead = input.read(buf)) != -1) {
      output.write(buf, 0, numBytesRead);
      }
      data = output.toByteArray();
      output.close();
      input.close();
    }
    catch (FileNotFoundException ex1) {
      ex1.printStackTrace();
    }
    catch (IOException ex1) {
      ex1.printStackTrace();
    }
    return data;
  }

另外,如果需要将byte存回图片或转为String,则:

  //byte数组到图片
  public void byte2image(byte data,String path){
    if(data.length《3||path.equals("")) return;
    try{
    FileImageOutputStream imageOutput = new FileImageOutputStream(new File(path));
    imageOutput.write(data, 0, data.length);
    imageOutput.close();
    System.out.println("Make Picture success,Please find image in " + path);
    } catch(Exception ex) {
      System.out.println("Exception: " + ex);
      ex.printStackTrace();
    }
  }
  //byte数组到16进制字符串
  public String byte2string(byte data){
    if(data==null||data.length《=1) return "0x";
    if(data.length》200000) return "0x";
    StringBuffer sb = new StringBuffer();
    int buf;
    //byte数组转化成十进制
    for(int k=0;k《data.length;k++){
      buf);
    }
    //十进制转化成十六进制
    for(int k=0;k《buf.length;k++){
      if(buf));
      else sb.append(Integer.toHexString(buf));
    }
    return "0x"+sb.toString().toUpperCase();
  }

C#怎么把图片转换成二进制数据

用二进制流的形式打开图片,读取出二进制代码存入数据库即可。

FileStream Pic = new FileStream(sFileName, FileMode.Open);//sFileName是图片路径
byte;
Pic.Read(PicByte, 0, PicByte.Length);

在ASP.NET中怎么图片转换二进制

首先数据库里面有一字段类型为image,我这里是一个窗体应用程序,也是将图片以二进制的形式保存至数据库的,思路是一样的
byte photo;
        public byte Photo
        {
            get { return photo; }
            set { photo = value; }
        }
        FileStream fs;
        string fileName = string.Empty;
        private void btnChooose_Click(object sender, EventArgs e)
        {
            OpenFileDialog fileDialog = new OpenFileDialog();
            fileDialog.Filter = "*.jpg|*.jpg|*.gif|*.gif|*.bmp|*.bmp";
            if (fileDialog.ShowDialog() == DialogResult.OK)
            {
                fileName = fileDialog.FileName;
                fs = new FileStream(fileName, FileMode.Open, FileAccess.ReadWrite, FileShare.ReadWrite);
                pictureBox.Image = Image.FromStream(fs);
                fs.Close();
            }
        }
        private void btnSave_Click(object sender, EventArgs e)
        {
            if (!string.IsNullOrEmpty(fileName))
            {
                fs = new FileStream(fileName, FileMode.Open, FileAccess.ReadWrite, FileShare.ReadWrite);
                byte;
                fs.Read(imageByte, 0, (int)fs.Length);
                Photo = imageByte;
                fs.Close();
                AddImage();
            }
            else
            {
                MessageBox.Show("请选择图片");
            }
        }
        private void AddImage()
        {
            using (SqlConnection connection = new SqlConnection(connString))
            {
                connection.Open();
                SqlCommand command = new SqlCommand("PROC_ADDIMAGE", connection);
                command.CommandType = CommandType.StoredProcedure;
                command.Parameters.Add("@IMAGE", SqlDbType.Image).Value = Photo;
               int rows =  command.ExecuteNonQuery();
               if (rows 》 0)
               {
                   MessageBox.Show("添加成功");
               }
               else
               {
                   MessageBox.Show("添加失败");
               }
            }
        }
        private void Form1_Load(object sender, EventArgs e)
        {
        }
        int index;
        /// 《summary》
        /// 获取图片
        /// 《/summary》
        /// 《param name="sender"》《/param》
        /// 《param name="e"》《/param》
        private void btnGetImage_Click(object sender, EventArgs e)
        {
            /// 《summary》
            /// 存图片的集合
            /// 《/summary》
            IList《Form1》 form1List = new List《Form1》();
            using (SqlConnection conn = new SqlConnection(connString))
            {
                conn.Open();
                SqlCommand command = new SqlCommand("PROC_GETIMAGE", conn);
                command.CommandType = CommandType.StoredProcedure;
                using (SqlDataReader reader = command.ExecuteReader())
                {
                    while (reader.Read())
                    {
                        Form1 form1 = new Form1();
                        form1.Photo = (byte;
                        form1List.Add(form1);
                    }
                }
            }
            if (form1List.Count == 1)
            {
                MemoryStream imageStream = new MemoryStream(form1List.Photo);
                pictureBox.Image = Image.FromStream(imageStream);
            }
            else if (form1List.Count 》 1)
            {
                index++;
                if (index 《 form1List.Count)
                {
                  
                    btnGetImage.Text = "下一张";
                    MemoryStream imageStream = new MemoryStream(form1List.Photo);
                    pictureBox.Image = Image.FromStream(imageStream);
                }
                else
                {
                    index=0;
                    MemoryStream imageStream = new MemoryStream(form1List.Photo);
                    pictureBox.Image = Image.FromStream(imageStream);
                }
                
            }
            else
            {
                MessageBox.Show("存中还没有图片");
            }
        }
        /// 《summary》
        /// 清除图片
        /// 《/summary》
        /// 《param name="sender"》《/param》
        /// 《param name="e"》《/param》
        private void btnClear_Click(object sender, EventArgs e)
        {
            pictureBox.Image = null;
        }

怎么把JPG格式图片转化成二进制数据

作为2二进制文件打开,一个字节一个字节地读入,写出,直到EOF(文件结束符)。当然写出时要按数据库约定的方式。
下面作为普通文件输出
FILE *fin,*fout;
void main(){int c;fin=fopen( duck.jpg,rb); // 作为2二进制文件打开
fout=fopen(tmp.jpg,wb);while(1){c=fgetc(fin); // 一个字节一个字节地读入
fputc ( c , fout ); // 改此句,让它符合数据库约定。}}

怎么将图片转换成二进制,存入数据库,然后怎么读出来并显示

1.将Image图像文件存入到数据库中
我们知道数据库里的Image类型的数据是"二进制数据",因此必须将图像文件转换成字节数组才能存入数据库中.
要这里有关数据的操作略写,我将一些代码段写成方法,方便直接调用.
//根据文件名(完全路径)
public byte SetImageToByteArray(string fileName)
{
FileStream fs = new FileStream(fileName, FileMode.Open);
int streamLength = (int)fs.Length;
byte;
fs.Read(image, 0, streamLength);
fs.Close();
return image;
}
//另外,在ASP.NET中通过FileUpload控件得到的图像文件可以通过以下方法
public byte SetImageToByteArray(FileUpload FileUpload1)
{
Stream stream = FileUpload1.PostedFile.InputStream;
byte;
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;//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;
}

Excel 如何将图片文件转换成二进制数组

方法一:
在Excel中,如果要将十进制转换为二进制编码,可以使用DEC2BIN函数将十进制转换为二进制编码。
如上图所示,在B2单元格输入公式:
=DEC2BIN(A2)
按回车键即可将十进制转换为二进制编码。返回转换后的二进制。
Excel2007可使用DEC2BIN函数将十进制转换为二进制编码。

如何把一张JPEG图片转换成二进制流

这个太简单了,声明一个内存流或文件流对象,再调用jpg对象的savetostream就可以了

图片能转成2进制的代码吗

可以转的,可以把图片序列化哼二进字节数组,也可以把二进制字节数组反序列化为图片。使用BinaryFormatter类来操作,图片质量不会有损失。 给你个示例。
/// 《summary》
/// 把对象序列化并返回相应的字节
/// 《/summary》
/// 《param name="pObj"》需要序列化的对象《/param》
/// 《returns》byte《/returns》
public byte SerializeObject(object pObj)
{
if (pObj == null)
return null;
System.IO.MemoryStream _memory = new System.IO.MemoryStream();
BinaryFormatter formatter = new BinaryFormatter();
formatter.Serialize(_memory, pObj);
_memory.Position = 0;
byte;
_memory.Read(read, 0, read.Length);
_memory.Close();
return read;
}
/// 《summary》
/// 把字节反序列化成相应的对象
/// 《/summary》
/// 《param name="pBytes"》字节流《/param》
/// 《returns》object《/returns》
public object DeserializeObject(byte pBytes)
{
object _newOjb = null;
if (pBytes == null)
return _newOjb;
System.IO.MemoryStream _memory = new System.IO.MemoryStream(pBytes);
_memory.Position = 0;
BinaryFormatter formatter = new BinaryFormatter();
_newOjb = formatter.Deserialize(_memory);
_memory.Close();
return _newOjb;
}

关于图片转换成二进制,Java中如何把图片转换成二进制流的介绍到此结束,希望对大家有所帮助。

图片转换成二进制(Java中如何把图片转换成二进制流)

本文编辑:admin

更多文章:


withdrawal(withdrawal是什么意思)

withdrawal(withdrawal是什么意思)

今天给各位分享withdrawal是什么意思的知识,其中也会对withdrawal是什么意思进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

2026年10月11日 07:00

根据流程图怎么编写程序(用c语言根据流程图写程序)

根据流程图怎么编写程序(用c语言根据流程图写程序)

大家好,今天小编来为大家解答以下的问题,关于根据流程图怎么编写程序,用c语言根据流程图写程序这个很多人还不知道,现在让我们一起来看看吧!

2026年10月11日 06:00

在from子句中可以出现(如何在from 子句中嵌套查询下面的语句在access中出错!)

在from子句中可以出现(如何在from 子句中嵌套查询下面的语句在access中出错!)

大家好,关于在from子句中可以出现很多朋友都还不太明白,不过没关系,因为今天小编就来为大家分享关于如何在from 子句中嵌套查询下面的语句在access中出错!的知识点,相信应该可以解决大家的一些困惑和问题,如果碰巧可以解决您的问题,还望

2026年10月11日 05:20

countif函数统计个数怎么用(countif函数怎么用 详解Excel中countif函数的使用方法)

countif函数统计个数怎么用(countif函数怎么用 详解Excel中countif函数的使用方法)

其实countif函数统计个数怎么用的问题并不复杂,但是又很多的朋友都不太了解countif函数怎么用 详解Excel中countif函数的使用方法,因此呢,今天小编就来为大家分享countif函数统计个数怎么用的一些知识,希望可以帮助到大

2026年10月11日 03:30

正则匹配数字之前的字符(正则表达式如何匹配前面是数字、中间是“/”、后面也是数字,就像2/3专业的模式)

正则匹配数字之前的字符(正则表达式如何匹配前面是数字、中间是“/”、后面也是数字,就像2/3专业的模式)

本篇文章给大家谈谈正则匹配数字之前的字符,以及正则表达式如何匹配前面是数字、中间是“/”、后面也是数字,就像2/3专业的模式对应的知识点,文章可能有点长,但是希望大家可以阅读完,增长自己的知识,最重要的是希望对各位有所帮助,可以解决了您的问

2026年10月11日 03:00

register语言学(register语言学)

register语言学(register语言学)

“register语言学”相关信息最新大全有哪些,这是大家都非常关心的,接下来就一起看看register语言学(register语言学)!

2026年10月11日 01:40

系统架构设计师可以直接考吗(学生可以报名系统架构设计师吗)

系统架构设计师可以直接考吗(学生可以报名系统架构设计师吗)

“系统架构设计师可以直接考吗”相关信息最新大全有哪些,这是大家都非常关心的,接下来就一起看看系统架构设计师可以直接考吗(学生可以报名系统架构设计师吗)!

2026年10月11日 01:00

orlnsertbootmediinselected(我电脑开机显示这个是什么意思or insert boot media in select)

orlnsertbootmediinselected(我电脑开机显示这个是什么意思or insert boot media in select)

大家好,如果您还对orlnsertbootmediinselected不太了解,没有关系,今天就由本站为大家分享orlnsertbootmediinselected的知识,包括我电脑开机显示这个是什么意思or insert boot med

2026年10月10日 23:00

display的用法(display是什么意思 详解display的含义和用法)

display的用法(display是什么意思 详解display的含义和用法)

大家好,如果您还对display的用法不太了解,没有关系,今天就由本站为大家分享display的用法的知识,包括display是什么意思 详解display的含义和用法的问题都会给大家分析到,还望可以解决大家的问题,下面我们就开始吧!

2026年10月10日 22:00

html全部居中代码(怎么让网页居中显示,html如何让网页居中)

html全部居中代码(怎么让网页居中显示,html如何让网页居中)

大家好,今天小编来为大家解答以下的问题,关于html全部居中代码,怎么让网页居中显示,html如何让网页居中这个很多人还不知道,现在让我们一起来看看吧!

2026年10月10日 21:10

最近更新

withdrawal(withdrawal是什么意思)
2026-10-11 07:00:01 浏览:0
热门文章

标签列表