gpt4 book ai didi

c# - 如何在 .NET 中按比例调整任何类型的图像?

转载 作者:可可西里 更新时间:2023-11-01 07:53:22 26 4
gpt4 key购买 nike

是否可以独立于图像类型(bmp、jpg、png 等)按比例调整图像大小?

我有这段代码并且知道缺少某些东西(但不知道是什么):

public bool ResizeImage(string fileName, string imgFileName,
ImageFormat format, int width, int height)
{
try
{
using (Image img = Image.FromFile(fileName))
{
Image thumbNail = new Bitmap(width, height, img.PixelFormat);
Graphics g = Graphics.FromImage(thumbNail);
g.CompositingQuality = CompositingQuality.HighQuality;
g.SmoothingMode = SmoothingMode.HighQuality;
g.InterpolationMode = InterpolationMode.HighQualityBicubic;
Rectangle rect = new Rectangle(0, 0, width, height);
g.DrawImage(img, rect);
thumbNail.Save(imgFileName, format);
}
return true;
}
catch (Exception)
{
return false;
}
}

如果不可能,我怎样才能按比例调整 jpeg 图像的大小?

我知道使用 this method , 但不知道把这个 (!) 放在哪里。

最佳答案

首先也是最重要的,您没有获取图像的当前高度和宽度。为了按比例调整大小,您需要获取图像的当前高度/宽度并据此调整大小。

从那里找到最大的属性并根据它按比例调整大小。

例如,假设当前图像为 800 x 600,而您想在 400 x 400 的空间内按比例调整大小。捕获最大的比例 (800) 并找到它与新尺寸的比例。 800 -> 400 = .5 现在取该比率并乘以第二个维度 (600 * .5 = 300)。

您的新尺寸是 400 x 300。这是一个 PHP 示例(抱歉......你会明白的)

$thumb_width = 400;
$thumb_height = 400;

$orig_w=imagesx($src_img);
$orig_h=imagesy($src_img);

if ($orig_w>$orig_h){//find the greater proportion
$ratio=$thumb_width/$orig_w;
$thumb_height=$orig_h*$ratio;
}else{
$ratio=$thumb_height/$orig_h;
$thumb_width=$orig_w*$ratio;
}

关于c# - 如何在 .NET 中按比例调整任何类型的图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/703873/

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