【发布时间】:2018-03-12 12:04:19
【问题描述】:
我从客户端收到一个代表 jpg 的 base64 字符串,我正在使用以下代码保存它
byte[] imageBytes = Convert.FromBase64String(base64File.base64Data);
using (var ms = new MemoryStream(imageBytes, 0, imageBytes.Length))
{
Image image = Image.FromStream(ms, true);
image.Save("aPath");
}
问题是在客户端输入的原始图片(base64编码之前)大约3MB,我用上面的方法保存后,变成了24MB的图片!
有什么办法可以减小它的大小? (我知道发送base64编码的大图不是很聪明,但我需要找到一个解决方案保留这部分)
【问题讨论】:
-
为什么要先将其转换为
Image?如果是 JPEG,则直接保存imageBytes。 -
您想减小它在磁盘上的大小吗?您是否尝试将其保存为其他格式,例如 PNG? :
image.Save("apath", ImageFormat.Png); -
base64 字符串本身有多大?
-
"image.Save(path)",没有保存类型参数,总是生成png。