上传图片透明色变黑色 (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;
}