最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C# byte數(shù)組與Image相互轉(zhuǎn)換的方法

 更新時(shí)間:2013年10月22日 14:51:43   作者:  
這篇文章介紹了C# byte數(shù)組與Image相互轉(zhuǎn)換的方法,有需要的朋友可以參考一下

功能需求:

1、把一張圖片(png bmp jpeg bmp gif)轉(zhuǎn)換為byte數(shù)組存放到數(shù)據(jù)庫(kù)。

2、把從數(shù)據(jù)庫(kù)讀取的byte數(shù)組轉(zhuǎn)換為Image對(duì)象,賦值給相應(yīng)的控件顯示。

3、從圖片byte數(shù)組得到對(duì)應(yīng)圖片的格式,生成一張圖片保存到磁盤(pán)上。

這里的Image是System.Drawing.Image。

以下三個(gè)函數(shù)分別實(shí)現(xiàn)了上述三個(gè)需求:

復(fù)制代碼 代碼如下:

// Convert Image to Byte[]
        private byte[] ImageToByte(Image image)
        {
            ImageFormat format = image.RawFormat;
            using (MemoryStream ms = new MemoryStream())
            {
                if (format.Equals(ImageFormat.Jpeg))
                {
                    image.Save(ms, ImageFormat.Jpeg);
                }
                else if (format.Equals(ImageFormat.Png))
                {
                    image.Save(ms, ImageFormat.Png);
                }
                else if (format.Equals(ImageFormat.Bmp))
                {
                    image.Save(ms, ImageFormat.Bmp);
                }
                else if (format.Equals(ImageFormat.Gif))
                {
                    image.Save(ms, ImageFormat.Gif);
                }
                else if (format.Equals(ImageFormat.Icon))
                {
                    image.Save(ms, ImageFormat.Icon);
                }
                byte[] buffer = new byte[ms.Length];
                //Image.Save()會(huì)改變MemoryStream的Position,需要重新Seek到Begin
                ms.Seek(0, SeekOrigin.Begin);
                ms.Read(buffer, 0, buffer.Length);
                return buffer;
            }
        }

        // Convert Byte[] to Image
        private Image ByteToImage(byte[] buffer)
        {
            MemoryStream ms = new MemoryStream(buffer);
            Image image = System.Drawing.Image.FromStream(ms);
            return image;
        }

        // Convert Byte[] to a picture
        private string CreateImageFromByte(string fileName, byte[] buffer)
        {
            string file = fileName; //文件名(不包含擴(kuò)展名)
            Image image = ByteToImage(buffer);
            ImageFormat format = image.RawFormat;
            if (format.Equals(ImageFormat.Jpeg))
            {
                file += ".jpeg";
            }
            else if (format.Equals(ImageFormat.Png))
            {
                file += ".png";
            }
            else if (format.Equals(ImageFormat.Bmp))
            {
                file += ".bmp";
            }
            else if (format.Equals(ImageFormat.Gif))
            {
                file += ".gif";
            }
            else if (format.Equals(ImageFormat.Icon))
            {
                file += ".icon";
            }
            //文件路徑目錄必須存在,否則先用Directory創(chuàng)建目錄
            File.WriteAllBytes(file, buffer);
            return file;
        }

相關(guān)文章

最新評(píng)論

宜章县| 南涧| 阿合奇县| 红原县| 崇文区| 桃园县| 宽城| 大城县| 安多县| 曲麻莱县| 仁怀市| 宝山区| 芜湖县| 青铜峡市| 淮安市| 宜兰市| 云梦县| 巴马| 黑河市| 田阳县| 迁西县| 文化| 曲阜市| 宜州市| 米林县| 宜都市| 永嘉县| 永嘉县| 虎林市| 白河县| 乐东| 台江县| 新沂市| 杂多县| 资兴市| 靖安县| 吴川市| 磐石市| 尼勒克县| 宾阳县| 光山县|