放大镜在c#.net

时间:2011-05-11 12:21:04

标签: c# image magnification

我在面板中绘制了一个图像。当我选中“放大”复选框并将鼠标光标放在面板上时,应放大覆盖光标的矩形区域。我该怎么做?我搜索了Codeproject.com并没有找到这样的。

2 个答案:

答案 0 :(得分:2)

This is how you do this in WPF

In WinForms it is not that easy但仍然可行。您必须在图片框顶部添加控件并使用光标移动它(并调整放大镜中图像的原点以便移动)。

答案 1 :(得分:0)

我很久以前做过类似的事情,但我不知道这是最好的方法还是今天存在的更好的方法。我通过放大强度确定了我的观看区域到各个像素的映射。常规图像上的每个像素表示一个不同大小的小矩形,具体取决于放大级别,并且它具有与像素相同的颜色属性。

我想出了我可以在观察区域中放入多少个像素矩形,然后用它来计算出原始的快照矩形大小。我从左到右读取每个像素,直到我到达左下角,并在快照中为每个像素创建这些矩形并将它们一个接一个地放在查看区域图像中。

它工作得很好并且速度非常快但我不得不对观看图像面板进行双重缓冲以获得更新。这种方法的一个大问题是我无法缩小原始版本。

就像我说的那样,我确信他们是更好的方法来做到这一点,因为我只是在最后一刻鞭打了一些东西。