【发布时间】:2019-12-14 08:33:09
【问题描述】:
我正在尝试使用 Magick.NET 库压缩图像(通常在 5-30 左右)质量/大小,但我无法真正理解如何使用 ImageOptimizer 类并调用 LosslessCompress() 方法使用流。
- 我需要使用 FileStream 还是 MemoryStream?
- 是否需要在服务器上为每个图像保存/创建一个临时文件,然后继续压缩流程? (性能?)
- 还有别的吗?
简单代码示例:
private byte[] ConvertImageToByteArray(IFormFile image)
{
byte[] result = null;
// filestream
using (var fileStream = image.OpenReadStream())
// memory stream
using (var memoryStream = new MemoryStream())
{
var before = fileStream.Length;
ImageOptimizer optimizer = new ImageOptimizer();
optimizer.LosslessCompress(fileStream); // what & how can I pass here stream?
var after = fileStream.Length;
// convert to byte[]
fileStream.CopyTo(memoryStream);
result = memoryStream.ToArray();
}
return result;
}
【问题讨论】:
标签: c# imagemagick iformfile