图片保存到数据库以及C#读取图片

摘要:
图像将保存到数据库中。如果是sqlserver,则是映像类型。如果保存到Oracle,则为blob类型。在c#中,它对应于byte[]类型。同时,您只需要强制转换读取的数据(byte[])对象。1.将图像保存为字节数组//参数是图像路径,返回byte[]类型pubicbyte[]GetPictureData(stringmagepath){FileStreamfil

图片保存到数据库,如果是sqlserver就是Image类型,如果保存到Oracle就是blob类型,在c#中相对应的就是byte[]类型,同时只需要对读出的数据强制转换就行(byte[])object.

1. 将图片保存为byte数组

    //参数是图片路径,返回Byte[]类型

   

 public byte[] GetPictureData(string imagepath)
    {
       FileStream file = new FileStream(imagepath, FileMode.Open);
       byte[] by = new byte[file.Length];
       file.Read(by, 0, by.Length);
       file.Close();
       return by;
    }

    //参数是Image,返回Byte[]类型

    

public byte[] GetPictureData(System.Drawing.Image imgPhoto)
    {
       //将Image转换成流数据,并保存为byte[]
       MemoryStream mstream=new MemoryStream();
       imgPhoto.Save(mstream,System.Drawing.Imaging.ImageFormat.Bmp);
       byte[]byData=new Byte[mstream.Length];
       mstream.Position=0;
       mstream.Read(byData,0,byData.Length);
       mstream.Close();
       return byData;
    }  

2. 将byte数组转换为图片

    

//参数是Byte[]类型,返回值是Image对象

    public System.Drawing.Image ReturnPhoto(byte[] streamByte)
    {
        MemoryStream me = new MemoryStream(streamByte);
        return System.Drawing.Image.FromStream(ms);
    }  

    //参数是Byte[]类型,没有返回值,这是针对asp.net中把图片从输出到网页上
    public void WritePhoto(byte[] streamByte)
    {
        Response.ContentType="image/GIF";
        Response.BinaryWrite(streamByte);
    }

3. byte[]和string的转换   

    //byte[] 转换为string
    byte[] by;
    string str=System.Convert.ToBase64String(by);
    //string转换为byte[]
    string str;
    byte[] by=System.Convert.FromBase64String(str);

免责声明:文章转载自《图片保存到数据库以及C#读取图片》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇spring security xml配置详解CSS与DIV的一些基础知识(2)下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

odoo 项目经验1

1.在xml中的domain表达式解析:|,&,!以及表示此意义的符号,都是遵从栈的规则(后进先出),右为栈底,所以从最左端的符号开始判断。 2.xml中也可以进行时间计算,比如在一周内的为即将开始等等等。 可参照https://www.cnblogs.com/hellojesson/p/8144474.html <filter strin...

crypto-js遇到的坑

最近在做H5网站,用websocket跟后台交互时,需要对数据进行加密,于是选了crypto-js组件,GitHub上api也不少,写的也清晰,但实际使用上会遇到不少坑: 加密解密时,传入的密钥key,需要转换为特定数组,不能是字符串 加密时,传入的明文需转换为特定数组 解密时,密文数组还要做特别的封装后,才能正确解密 let aes_option =...

用广播监听安卓设备电量状态

  发送通知   这次邮件我们将会讨论怎么获取电量状态在安卓设备上,为了完成这个目标,我们将会使用到广播。 What is BroadcastReceiver?A broadcast receiver is an Android component which allows you to register for system or applic...

netty中的UDP

UDP 提供了向多个接收者发送消息的额外传输模式: 多播——传输到一个预定义的主机组; 广播——传输到网络(或者子网)上的所有主机。 本示例应用程序将通过发送能够被同一个网络中的所有主机所接收的消息来演示 UDP 广播的使用。为此,我们将使用特殊的受限广播地址或者零网络地址 255.255.255.255。 发送到这个地址的消息都将会被定向给本地网络...

Java:String和Date、Timestamp之间的转换

一、String与Date(java.util.Date)互转      1.1 String -> Date String dateStr = "2010/05/04 12:34:23";            Date date = new Date();            //注意format的格式要与日期String的格式相匹配  ...

c++ string 的函数replace()用法

basic_string::replace 将原string 中的元素或子串替换。返回替换后的string。 (1)用string 或C-string 代替操作string 中从 _Pos1 开始的 _Num1 个字符 basic _ string& replace( size _ type _Pos1 ,size _ type _Num1 ,...