调整图像大小时图像的像素位置(x,y坐标)

时间:2013-06-10 19:33:46

标签: c# winforms matrix

我希望图像实际场景中的像素位置(x,y坐标)是

1)当将图像放入图片框时,它使用鼠标指针给出了正确的x,y像素坐标,它给出了正确的像素坐标。

2)当我重新调整图像大小并让像素协调该图像时,它会向我显示错误的像素坐标。

虽然在google上搜索某些引用我使用Microsoft .net的Matrix类但是在图像调整大小时不知道如何使用它来获取像素位置(x,y坐标)的位置?

如果可能的话,请给我参考资料.....

1 个答案:

答案 0 :(得分:0)

使用矩阵是过度的。给定图像的原始大小和新调整大小的尺寸,您应该能够进行一些简单的数学运算,将调整大小后的图像中的像素转换为原始图像中的区域:

// Given origWidth, origHeight, newWidth, newHeight, clickX, and clickY variables...
var scaleX = (double)origWidth / newWidth;
var scaleY = (double)origHeight / newHeight;
var translatedRegion = new {
    X = clickX * scaleX,
    Y = clickY * scaleY,
    Width = scaleX,
    Height = scaleY
};

请注意,我不会转换为像素,而是转换为某个区域,因为一个像素可能无法转换为原始像素中的单个像素甚至整个像素。