开发者社区> 杰克.陈> 正文

C#将image中的显示的图片转换成二进制

简介: 原文:C#将image中的显示的图片转换成二进制  1.将Image图像文件存入到数据库中 我们知道数据库里的Image类型的数据是"二进制数据",因此必须将图像文件转换成字节数组才能存入数据库中. View Code //将本地图片转换成二进制保存起来 ...
+关注继续查看
原文:C#将image中的显示的图片转换成二进制

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

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

View Code
        //将本地图片转换成二进制保存起来
        private byte[] SetImageToByteArray(string fileName)
        {
            FileStream fs = null;
            try
            {
                fs = new FileStream(fileName, FileMode.Open, System.IO.FileAccess.Read, FileShare.ReadWrite);
                Bitmap bt = new Bitmap(fs);
                int streamLength = (int)fs.Length;
                byte[] image = new byte[streamLength];
                fs.Read(image, 0, streamLength);

                return image;
            }
            catch (Exception)
            {

                throw;

            }
            finally
            {

                fs.Close();
            }
        }

 

View Code
//根据文件名(完全路径)
public byte[] SetImageToByteArray(string fileName)
    {
        FileStream fs = new FileStream(fileName, FileMode.Open, System.IO.FileAccess.Read, FileShare.ReadWrite);
        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图像文件

View Code
//将数据库中的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; 
    } 

这种方式保存图片比较安全

大致的步骤,就是我们首先要获得文件的路径,无论是通过上传控件和文本框,还是手动输入等,只要能获得路径就可以了

然后我们就可以利用上面的方法,将文件资源转换为二进制放到数据库里,数据库字段可以使用image类型,或者字符串,到时候转换下就可以了

最后我们就可以从数据库中读取字节,转换成image,或者以流的方式输出图片都可以了(这种一般用于asp.net输入图片)

asp.net输入流的代码如下:

View Code
    protected void Page_Load(object sender, EventArgs e)
        {
            byte[] bb = SetImageToByteArray("E:\\regedit.jpg");
            System.Drawing.Image img = ReturnPhoto(bb);
            //设定输出文件的类型
            Response.ContentType = "image/jpg";
            //输出图片文件二进制数据
            Response.BinaryWrite(bb);
        }

如果是winForm就可以直接通过转换过的image赋值就可以了

 

View Code
           byte[] bb = SetImageToByteArray(textBox1.Text);
            System.Drawing.Image img = ReturnPhoto(bb);
            pictureBox1.Image = img;

 


 

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
Python PIL.Image模块:图片变更尺寸大小(宽x高)
Python PIL.Image模块:图片变更尺寸大小(宽x高)
27 0
*.pvr.ccz文件还原成png格式
*.pvr.ccz文件还原成png格式
12 0
把UIImage转成PDF进行保存
最近有个场景,需要把H5传递过来的base64保存为PDF文件,经解析,H5是直接把png转base64,保存下来的文件就算是重命名为【xxx.pdf】,依然还是没法在【文件.app】中打开,只能把base64转成UIImage,再通过绘制PDF来进行保存
38 0
将RGB转换为JPG格式到内存的代码
将RGB转换为JPG格式到内存的代码
60 0
python 将绘制的图片保存为矢量图格式(svg)
python 将绘制的图片保存为矢量图格式(svg)
832 0
Opencv,imread()读取BGR格式文件转换与RGB格式的相互转换
Opencv,imread()读取BGR格式文件转换与RGB格式的相互转换
196 0
将PDF文件转换成PNG图片
有这样一个业务场景:需要在 WEB 页面中浏览 PDF 文件,PDF 文件存储在 FTP 服务器上,即 PDF 文件对外提供的访问地址的协议是 ftp 的。有如下几个硬条件、软需求的要求: - WEB 页面本身的可视区域不是很大; - 不想弹出对话框展示 PDF 文件; - 谷歌浏览器不支持在 http 协议的页面里内嵌 ftp 协议的路径; - 在 WEB 页面中使用系统默认的 PDF 阅读器的体验不是很好,滚动条啦,边框啦。
137 0
Qt&Vtk-003-读取jpg、png、dicom等格式图片
本文其实才能算是真正的Qt与Vtk结合,具体实现JPG、PNG、TIFF、DICOM、BMP及一个3D Cube显示。
402 0
ps之解决eps图片不能保存为png格式问题
ps之解决eps图片不能保存为png格式问题
117 0
将指定路径下的所有SVG文件导出成PNG等格式的图片(缩略图或原图大小)
原文:将指定路径下的所有SVG文件导出成PNG等格式的图片(缩略图或原图大小) WPF的XAML文档(Main.xaml):                                   CS代码:(Main.
933 0
+关注
杰克.陈
一个安静的程序猿~
文章
问答
视频
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载