这里Image.Load(imageStream);提示Image不包含Load的定义
时间: 2023-11-27 17:03:40 浏览: 167
加载图片显示
4星 · 用户满意度95%
抱歉,我之前的回答可能有误。在 .NET Core 中,ImageSharp 库中的 `Image` 类确实不包含 `Load` 方法。
如果你想要从流中加载图像,可以使用 `Image.LoadAsync` 方法。下面是修改后的代码:
```csharp
using SixLabors.ImageSharp;
using SixLabors.ImageSharp.Processing;
public async Task<Stream> CompressImagesAsync(IEnumerable<string> imageUrls)
{
var outputStream = new MemoryStream();
using (var zipArchive = new ZipArchive(outputStream, ZipArchiveMode.Create, true))
{
foreach (var imageUrl in imageUrls)
{
using (var httpClient = new HttpClient())
{
var imageBytes = await httpClient.GetByteArrayAsync(imageUrl);
using (var imageStream = new MemoryStream(imageBytes))
{
var image = await Image.LoadAsync(imageStream);
image.Mutate(x => x.Resize(new ResizeOptions
{
Size = new Size(800, 600),
Mode = ResizeMode.Max
}));
var entry = zipArchive.CreateEntry(Path.GetFileName(imageUrl));
using (var entryStream = entry.Open())
{
await image.SaveAsync(entryStream, new JpegEncoder());
}
}
}
}
}
outputStream.Seek(0, SeekOrigin.Begin);
return outputStream;
}
```
我希望这个修改后的代码对你有所帮助。如果你有任何其他问题,请随时问我。
阅读全文