gpt4 book ai didi

c# - 图片框位图缩放

转载 作者:太空狗 更新时间:2023-10-29 22:27:10 26 4
gpt4 key购买 nike

我有一个 Picturebox 和大量可以在其中显示的 Bitmaps。与其他位图相比,位图的相对大小对用户很重要。他们需要能够看到一张图片比另一张图片小或大。位图还必须完全适合图片框,并且不能调整图片框的大小。

当简单地在一个巨大的图片框中显示未缩放的位图时,位图的相对大小很容易看到,但是当试图将它们放入一个小盒子中并且不得不缩小它们时,我的问题就开始了。

当使用 Stretch PictureBoxSizeMode 时,您可能会想象图像有时会由于位图的非特定大小而出现扭曲,事实上它们随后会被拉伸(stretch)以填充整个框,而无论如何,但 Stretch sizemod最接近我需要的那种。

没有其他大小模式适合我的需要,所以我知道现在我需要创建一个函数来调整位图的大小,这是我尝试的开始,直到我意识到我完全错误方向,此处返回的图像不保留“比例”。

    private Bitmap ResizeBitmap(Bitmap img)
{
int newWidth = 0;
int newHeight = 0;
double imgRatio;

if (img.Width > img.Height)
{
imgRatio = ((double)img.Height / (double)img.Width) * 100;

newWidth = pictureBox.Width;

newHeight = (int)(((double)newWidth / 100) * imgRatio);
}
else
{
imgRatio = ((double)img.Width / (double)img.Height) * 100;

newHeight = pictureBox.Height;

newWidth = (int)(((double)newHeight / 100) * imgRatio);
}

Bitmap newImg = new Bitmap(newWidth, newHeight);

using (Graphics g = Graphics.FromImage(newImg))
g.DrawImage(img, 0, 0, newWidth, newHeight);

return newImg;
}

我已经盯着屏幕看了一段时间了,目前我还不知道进行缩放的数学运算,我希望有人能给我指出正确的方向。快凌晨 4 点了,所以我的大脑可能只是没有掌握一些简单的概念。

最佳答案

将 PictureBoxSizeMode 设置为 Zoom .这样可以保持纵横比。

关于c# - 图片框位图缩放,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14207895/

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