gpt4 book ai didi

c# - ImageResizer 为图像生成错误的宽度

转载 作者:太空宇宙 更新时间:2023-11-03 23:26:33 26 4
gpt4 key购买 nike

我让用户上传最小宽度为 400 像素的横幅。然后这张图片的宽度将达到 1110 像素。我尝试上传以下尺寸的图片:960x390、410x410、784x250。当我上传 784x250 时,图像得到相同的尺寸 784x250 而不是宽度 1110px。

我用这个:

        int Height;
using (var Bmp = new Bitmap(str))
{
if (Bmp.Width < 400)
{
throw;
}
if (Bmp.Height < 150)
{
throw;
}
Height = Bmp.Height;
}

if (Height > 300)
{
Height = 300;
}

str.Position = 0;
var ImageData = str.StreamToByteArray();

var Settings = "width=1110;height="+ Height + ";format=jpg;mode=crop;"

var Setting = new ResizeSettings(Settings);
using (var Out = new MemoryStream())
{
using (var In = new MemoryStream(ImageData))
{
In.Seek(0, SeekOrigin.Begin);

var I = new ImageJob(In, Out, Setting)
{
CreateParentDirectory = false
};
I.Build();
}

Out.Position = 0;

// Upload to blob
}

(str 包含带有图像的流)

我希望图像的宽度为 1110 像素,最大高度为 300 像素。怎么了?

最佳答案

ImageResizer 不会放大图像,除非您通过 scale=bothscale=canvas 特别要求。放大通常是不希望的。

此外,您可以将流直接传递给 ImageJob 并显着简化您的代码。

str.Seek(0, SeekOrigin.Begin);
var Out = new MemoryStream(8096);
new ImageJob(str, Out, new Instructions("width=1110;height="+ Height + ";format=jpg;mode=crop;scale=both")).Build();
Out.Seek(0, SeekOrigin.Begin);

关于c# - ImageResizer 为图像生成错误的宽度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33631613/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com