zoukankan      html  css  js  c++  java
  • BASE64码转图片

    最近的开发中让同事在与第三方的交互中写了一个接口,用来数据交互其中有图片流的接收这一部分。

    突然一天发现,有一张图片接收了以后不正确,试了各种方式把文件流都记录下来在线测试了一下也能转换出正确的图片,但是为什么项目里的代码就不行,而且也仅是这样图片。

    代码如下:

     1  byte[] bytes = Convert.FromBase64String(avatar);
     2 
     3                     using (MemoryStream mStream = new MemoryStream(bytes))
     4                     {
     5                         using (Bitmap bmp = new Bitmap(mStream))
     6                         {
     7 
     8                             if (suffix.ToLower() == "jpg")
     9                             {
    10                                 bmp.Save(path, ImageFormat.Jpeg);
    11                             }
    12                             if (suffix.ToLower() == "png")
    13                             {
    14                                 bmp.Save(path, ImageFormat.Png);
    15                             }
    16                             if (suffix.ToLower() == "bmp")
    17                             {
    18                                 bmp.Save(path, ImageFormat.Bmp);
    19                             }
    20                         }
    21                     }
    View Code

    后来,客户的一句话提醒了我,他的图片是从PNG直接改的后缀名为jpg

    然后我就试了下果然是这个问题,如果使用  bmp.Save(path, ImageFormat.Png)去保存就没有问题。

    于是,退而求其次,我把就写了个demo把代码做出如下就该就没有问题

     1 byte[] bytes = Convert.FromBase64String(avatar);
     2 
     3                     using (MemoryStream mStream = new MemoryStream(bytes))
     4                     {
     5                         using (Bitmap bmp = new Bitmap(mStream))
     6                         {
     7                             bmp.Save(path);
     8 
     9                             //if (suffix.ToLower() == "jpg")
    10                             //{
    11                             //    bmp.Save(path, ImageFormat.Jpeg);
    12                             //}
    13                             //if (suffix.ToLower() == "png")
    14                             //{
    15                             //    bmp.Save(path, ImageFormat.Png);
    16                             //}
    17                             //if (suffix.ToLower() == "bmp")
    18                             //{
    19                             //    bmp.Save(path, ImageFormat.Bmp);
    20                             //}
    21                         }
    22                     }
    View Code

    这个问题就在于当你不设置ImageFormat的时候确实没有出错,虽然我不明白具体的原因是什么但是我觉得以后还是不要多此一举的好,而且如上段代码还严重的限制的对方图片的格式。

  • 相关阅读:
    fpga配置方式 .jic固化为ps模式
    fpga新建nios
    四轴飞行器飞行原理与双闭环PID控制
    fpga为什么要用nios 开发
    error A space is required after ',' comma-spacing
    vuex : Newline required at end of file but not found eol-last
    vue -Missing space before value for key 'path'vue.js解决空格报错
    visual studio 自动补全功能 以及代码没有颜色
    hadoop 伪分布模式环境搭建
    django框架-DRF工程之认证功能
  • 原文地址:https://www.cnblogs.com/qzzy/p/BASE64TOIMAGE.html
Copyright © 2011-2022 走看看