我想在c#中使用鼠标滚轮放大或缩小图片框中的图像。我该怎么做?
本主题有助于放大和缩小图片框中的图片
在图片框鼠标滚轮事件中添加以下代码
if (e.Delta != 0) {
if (e.Delta <= 0) {
//set minimum size to zoom
if (PictureBox1.Width < 50)
return;
} else {
//set maximum size to zoom
if (PictureBox1.Width > 500)
return;
}
PictureBox1.Width += Convert.ToInt32(PictureBox1.Width * e.Delta / 1000);
PictureBox1.Height += Convert.ToInt32(PictureBox1.Height * e.Delta / 1000);
}
您可能需要操作图像;将尺寸模式设置为拉伸;通常实例化一个比原始位图小的 System.Drawing.Rectangle (根据您所需的缩放级别计算新的高度/宽度/起点...),然后使用 Bitmap.Clone(Rect,PixelFormat) 重置图像;即:
默认/完整图片:
将 BM 调暗为新位图(MyPicture)
PBox.Image = BM
放大10%:
将矩形变暗为新 System.Drawing.Rectangle(0, 0, BM.Width * .90, BM.Height * .90)
PBox.Image = BM.Clone(矩形, BM.PixelFormat)
本质上,“拉伸”现在应该将较小的图像拉伸到图片框的完整尺寸,本质上是缩放它......我不知道这会有多有效,或者是否有更好的方法来处理这个问题。