【发布时间】:2020-08-08 23:36:47
【问题描述】:
我正在尝试使用 SixLabors.ImageSharp(版本 1.0.0-beta0007)在 .NET Core C# 应用程序中将图像大小调整为缩略图。我注意到只有某些图像,调整大小的图像具有白色、红色或蓝色扭曲边框,如下所示:
我生成缩略图的代码如下:
using (var imageToResize = Image.Load(inStream, out IImageFormat imageFormat))
{
var size = GetThumbnailSize(imageToResize.Size()); //max size 150,preserves aspect-ratio
imageToResize.Mutate(x => x.Resize(new ResizeOptions()
{
Size = size,
Mode = ResizeMode.Crop
}));
using (var memorystream = new MemoryStream())
{
imageToResize.Save(memorystream , imageFormat);
ms.Position = 0;
outputStream.UploadFromStreamAsync(memorystream);
}
}
这两张图片是从同一设备捕获的,并且都具有相同的尺寸 (3024x4032),这是我能注意到的唯一相似之处,因为我是图像处理的新手。我也玩过调整大小模式和不同的重采样器,但无法解决这个问题。
是什么导致了这个问题?有没有办法通过使用 SixLabors.ImageSharp 库来解决这个问题?
【问题讨论】:
-
您的输入流可能存在问题,未提供所有字节。我猜您正在通过
UploadFromStreamAsyncmethod 调用使用Azure。将您的输入流复制到MemoryStream并尝试从那里加载。 -
谢谢@JamesSouth!我通过将输入流映射到一个字节数组并从中加载图像来完成它。
标签: c# image-processing .net-core image-resizing imagesharp