首页 > 解决方案 > 如何在不影响协调的情况下,让图片框中的图片变小?

问题描述

我想让用户定义他们想要提取文本的区域,但是对于行项目,图片太大,它使矩形不能包含整个表格。

我找到了一个能够缩小图片但坐标也发生变化的解决方案。例如,我在“Malarvili”处绘制了矩形区域,但矩形坐标与我绘制的不同。因此,提取的文本是错误的。
示例 1

所以我想知道有什么办法可以让图片在picturebox中变小而不影响原来的矩形坐标?或者使用我的原始解决方案,即使用“自动调整大小”而不更改图片大小,但我也面临一个问题,即当我向右绘制矩形时,滚动条不会自动滚动,它使我无法将矩形绘制到权利的尽头。
我当前的解决方案,但是当鼠标向右移动时,滚动条不会自动向右滚动

有什么办法可以解决这些问题吗?非常感谢。

标签: c#image-processingocrzooming

解决方案


您可以计算调整大小图像(pictureBoxwithStretchImage模式)与原始图像之间的比率(x 和 y 轴),然后使用这些比率从您在图片框中绘制的矩形计算回原始图像的矩形。

pictureBox.SizeMode = PictureBoxSizeMode.StretchImage;
ratio_X = (double) pictureBox.Width/original_image;
ratio_Y = (double) pictureBox.Height/original_image;

//suppose you have the rect drawed in the pictureBox: pictureBox_rect
//now make a rect for original_image
Rectangle original_rect = new Rect((int)pictureBox_rect.X * ratio_X, 
                                   (int)pictureBox_rect.Y * ratio_Y, 
                                   (int)pictureBox_rect.Width * ratio_X, 
                                   (int)pictureBox_rect.Height * ratio_Y)

推荐阅读