Magick.Net 调整图片大小
Magick.Net resize image
我有一些代码可以转换图像,现在可以使用了,但是生成的图像宽度真的很小。我想强制它使用 600px 的宽度。
我的代码如下所示:
public async Task<string> ConvertImage(byte[] data)
{
// Create our settings
var settings = new MagickReadSettings
{
Width = 600
};
// Create our image
using (var image = new MagickImage(data, settings))
{
// Create a new memory stream
using (var memoryStream = new MemoryStream())
{
// Set to a png
image.Format = MagickFormat.Png;
image.Write(memoryStream);
memoryStream.Position = 0;
// Create a new blob block to hold our image
var blockBlob = container.GetBlockBlobReference(Guid.NewGuid().ToString() + ".png");
// Upload to azure
await blockBlob.UploadFromStreamAsync(memoryStream);
// Return the blobs url
return blockBlob.StorageUri.PrimaryUri.ToString();
}
}
}
我上传的图片是AI文件,转换后只有64px宽。
有谁知道为什么以及如何解决它?
对于 Magick.NET 的当前版本,这是预期的行为。但是在看到您的 post 之后,我们对 ImageMagick/Magick.NET 进行了一些更改。使用 Magick.NET 7.0.0.0103 及更高版本,您将获得适合您使用宽度和高度指定的边界的图像。因此,当您将宽度指定为 600 时,您将获得 600 像素宽的图像。
我有一些代码可以转换图像,现在可以使用了,但是生成的图像宽度真的很小。我想强制它使用 600px 的宽度。 我的代码如下所示:
public async Task<string> ConvertImage(byte[] data)
{
// Create our settings
var settings = new MagickReadSettings
{
Width = 600
};
// Create our image
using (var image = new MagickImage(data, settings))
{
// Create a new memory stream
using (var memoryStream = new MemoryStream())
{
// Set to a png
image.Format = MagickFormat.Png;
image.Write(memoryStream);
memoryStream.Position = 0;
// Create a new blob block to hold our image
var blockBlob = container.GetBlockBlobReference(Guid.NewGuid().ToString() + ".png");
// Upload to azure
await blockBlob.UploadFromStreamAsync(memoryStream);
// Return the blobs url
return blockBlob.StorageUri.PrimaryUri.ToString();
}
}
}
我上传的图片是AI文件,转换后只有64px宽。 有谁知道为什么以及如何解决它?
对于 Magick.NET 的当前版本,这是预期的行为。但是在看到您的 post 之后,我们对 ImageMagick/Magick.NET 进行了一些更改。使用 Magick.NET 7.0.0.0103 及更高版本,您将获得适合您使用宽度和高度指定的边界的图像。因此,当您将宽度指定为 600 时,您将获得 600 像素宽的图像。