• 从数据库存的字节图片到前端展示


    解决了问题先不要着急上线,先在博客上记录下来

    字节转bitmap ,bitmap转 64编码   前端src 把那串string对上就可以了

       public static string ImgToBase64String(Bitmap bmp)
            {
                try
                {
                    MemoryStream ms = new MemoryStream();
                    bmp.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg);
                    byte[] arr = new byte[ms.Length];
                    ms.Position = 0;
                    ms.Read(arr, 0, (int)ms.Length);
                    ms.Close();
                    return Convert.ToBase64String(arr);
                }
                catch (Exception ex)
                {
                    return null;
                }
            }
            public static string Base64EncodeBytes( byte[] inBytes)
            {
                return Convert.ToBase64String(inBytes);
            }
            public static Bitmap BytesToBitmap(byte[] Bytes)
            {
                MemoryStream stream = null;
                try
                {
                    //ZipHelper.BZipDeCompress(Bytes);
                    stream = new MemoryStream(BZipDeCompress(Bytes));
                    return new Bitmap((Image)new Bitmap(stream));
                    //return new Bitmap(stream);
                }
                catch (Exception)
                {
                    stream = new MemoryStream(Bytes);
                    return new Bitmap((Image)new Bitmap(stream));
                    //return new Bitmap(stream);
                } finally
                {
                    stream.Close();
                    stream.Dispose();
                }
            }
          public static byte[] BZipDeCompress(byte[] data, bool isClearData = false)
                {
                byte[] bytes = null;
                using (MemoryStream o= new MemoryStream())
                {
                    using (MemoryStream ms = new MemoryStream(data))
                    {
                        using (Stream s = new BZip2InputStream(ms))
                        {
                            s.Flush();
                            int size = 0;
                            byte[] buffer = new byte[s.Length];
                            while ((size = s.Read(buffer, 0, buffer.Length))> 0)
                            {
                                o.Write(buffer, 0, size);
                            } 
                        }
                    }
                    bytes = o.ToArray();
                }
                if (isClearData)
                    Array.Clear(data, 0, data.Length);
                return bytes;
            }
     <img src="data:image/png;base64,{{value.BWindowsImage}}"/>

    调用

     data[i].BWindowsFSTImage = ImgToBase64String(BytesToBitmap(data[i].WindowsFSTImage));

    试了直接从字节转64字符串不行.

  • 相关阅读:
    各大型邮箱smtp服务器及端口收集
    阿里云邮箱POP3、SMTP设置教程
    thinkphp使用PHPMailer发送邮件
    SMTP错误码建议解决方法
    又来杭州了
    外企
    陈志武竞然是date的独立董事
    今天在当当上买了几本书,内有51反利的优惠券,也是一个suprise,
    工作 心态
    中国互联网创业,最好的城市是哪里?
  • 原文地址:https://www.cnblogs.com/zuochanzi/p/16077402.html
Copyright © 2020-2023  润新知