private void pictureBox2_MouseUp(object sender, MouseEventArgs e)
{
Bitmap rectImage = cropAtRect((Bitmap)pictureBox2.Image, rect);
int x, y;
for (x = rect.X; x < rect.Width; x++) {
for (y = rect.Y; y < rect.Height; y++) {
Color pixelColor = rectImage.GetPixel(x, y);
pixelsCounter++;
}
}
pictureBox1.Image = rectImage;
}
我想获取rectImage中的像素数。我可以在pictureBox1中看到rectImage,但变量pixelsCounter在循环后为0。
1条答案
按热度按时间s71maibg1#
假设您有一个从X坐标10(包括10)到X坐标15(不包括15)的矩形:
显然,这个矩形的宽度为5像素,即
rect.Width
为5。让我们看看您的循环:这个循环将从
X
(10)开始,并增加循环计数器,直到它达到Width
(5)。您需要从10循环到15(即从
X
循环到X + Width
)或从0循环到5(即从0
循环到Width
)。哪一个是正确的取决于您打算如何处理循环索引。然而,在你的例子中,你并不需要整个循环。正如评论中提到的,像素的数量只是
Width * Height
。