上传图片透明色变黑色 (Bitmap 图片) c#

遇到一个很奇幻的问题,前台富文本上传图片 透明色变成了黑色,记录一下。

原因是图片格式保存错了,比如上传 JPGE 保存为 ImageFormat.PNG.

 

正确的base64保存图片如下:

 

byte[] arr2 = Convert.FromBase64String(datasource);//datasource :  base64 string
Imagename = filePath + type;// 文件路径  d:file/   +   aaa.jpg
using (MemoryStream ms2 = new MemoryStream(arr2))
{
System.Drawing.Bitmap bmp2 = new System.Drawing.Bitmap(ms2);
bmp2.Save(Imagename, GetImageFormat(type));
}

 

 

 

public ImageFormat GetImageFormat(string type)
{
type = type.ToLower();
var imageformat = ImageFormat.Png;
switch (type)
{
case ".png":
imageformat= ImageFormat.Png;
break;

case ".gif":
imageformat = ImageFormat.Gif;
break;
case ".jpeg":
imageformat = ImageFormat.Jpeg;
break;

case ".jpg":
imageformat = ImageFormat.Jpeg;
break;

case ".memorybmp":
imageformat = ImageFormat.MemoryBmp;
break;

case ".bmp":
imageformat = ImageFormat.Bmp;
break;
case ".emf":
imageformat = ImageFormat.Emf;
break;
case ".wmf":
imageformat = ImageFormat.Wmf;
break;
case ".tiff":
imageformat = ImageFormat.Tiff;
break;
case ".exif":
imageformat = ImageFormat.Exif;
break;
case ".icon":
imageformat = ImageFormat.Icon;
break;
}
return imageformat;
}

posted @ 2022-05-27 15:54  越过那个限制  阅读(771)  评论(0编辑  收藏  举报