我想让用户定义他们要提取文本的区域,但是对于订单项来说,图片太大了,这使矩形不能包含整个表格。
我找到了一种解决方案,可以缩小图片,但坐标也发生了变化。例如,我在“ Malarvili”处绘制了矩形区域,但是矩形坐标与我绘制的坐标不同。因此,提取的文本是错误的。
所以我想知道任何解决方案,以使图片在图片框中变小而不影响原始矩形坐标吗?或者使用我的原始解决方案,即不改变图片大小而使用“自动调整大小”,但是我也遇到了一个问题,即当我向右绘制矩形时,滚动条将不会自动滚动,这使我无法将矩形绘制为右边的尽头。
有解决这些问题的解决方案吗?非常感谢。
答案 0 :(得分:0)
您可以计算调整大小的图像(使用pictureBox
模式的StretchImage
)和原始图像之间的比率(x和y轴),然后从您所获得的矩形中计算出原始图像的矩形使用这些比率在pictureBox中绘制。
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)