【发布时间】:2018-01-12 21:04:55
【问题描述】:
我正在尝试正确放大/缩小 PictureBox 中的图像。 我有这个代码。
private Image GridMap;
private double ZoomFactor = 1;
protected override void OnMouseWheel(MouseEventArgs e)
{
if (e.Delta > 0)
{
ZoomFactor*=1.2;
}
else if (e.Delta < 0 && ZoomFactor >1 )
{
ZoomFactor /= 1.2;
}
Size newSize = new Size((int)(GridMap.Width * ZoomFactor), (int)(GridMap.Height * ZoomFactor));
Bitmap bmp = new Bitmap(GridMap, newSize);
MainGrid.Image = bmp;
}
MainGrid 是我要缩放的 PictureBox。
此代码有效,但滚动后非常慢,我等待 1-2 秒,然后显示放大的图片。与 (800,800) 图像。这非常慢。
我想我知道为什么。它复制调整大小的位图,而不是只使用旧位图的一部分,但我不知道该怎么做。
如何使它平滑缩放?
【问题讨论】: