首页  »   C#

C# 图片转换成二进制,二进制转换图片的有关问题

网友分享于:2014-05-09  浏览:9次
C# 图片转换成二进制,二进制转换图片的问题
保存的二进制和读取出来的二进制好像不一样 

而去这种方法二进制转换图片有问题  ,谁又比较好的方法      目的就是把图片保存在数据里 


图片转换成二进制
public static byte[] ImageDatabytes(string FilePath)
        {
            if (!File.Exists(FilePath))
                return null;
            Bitmap myBitmap = new Bitmap(Image.FromFile(FilePath));

            using (MemoryStream curImageStream = new MemoryStream())
            {
                myBitmap.Save(curImageStream, System.Drawing.Imaging.ImageFormat.Png);
                curImageStream.Flush();

                byte[] bmpBytes = curImageStream.ToArray();
                //如果转字符串的话
                //string BmpStr = Convert.ToBase64String(bmpBytes);
                return bmpBytes;
            }
        }



二进制转化图片
public static Bitmap GetImage(byte[] ImageDatas)
        {
            try
            {
                //如果是字符串的话
                //byte[] resultBytes = Convert.FromBase64String(ImageDatas);

                using (MemoryStream ImageMS = new MemoryStream())
                {
                    ImageMS.Write(ImageDatas, 0, ImageDatas.Length);

                    Bitmap resultBitmap = new Bitmap(ImageMS);
                    return resultBitmap;
                }
            }
            catch
            {
                return null;
            }
        }


------解决方案--------------------

//读取
new Bitmap(new MemoryStream((byte[])dr["照片"]));
//保存
MemoryStream ms = new MemoryStream();
                myBitmap.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg);
                ms.Dispose();
                 ms.ToArray();

------解决方案--------------------
存路径也可以吧?然后实际上图片保存在一个文件夹下。
------解决方案--------------------
参考下
------解决方案--------------------
你存的和取的不一样,所以造成了不同!你在存储的时候应该不是位图,而保存的时候却是bitmap!
其实应该没那么复杂,.net就提供有相互转换的方法!
字节流转换为图片:
Image.FromStream(new MemoryStream(new byte[]]));
图片转换为字节流:
byte[] bytes = System.IO.File.ReadAllBytes(filePath);
------解决方案--------------------
参考一下:

       /// <summary>
        /// 将实际位置中的照片转化为byte[]类型写入数据库中
        /// </summary>
        /// <param name="strFile">string图片地址</param>
        /// <returns>byte[]</returns>
        public static byte[] GetBytesByImagePath(string strFile)
        {
            byte[] photo_byte = null;
            using (FileStream fs =
上一页1/3下一页

相关解决方案

最新解决方案