추가 사진 수두의 줌과 패딩을 얻을 수있는 방법
다음
private void CalculateZoomAndPadding()
{
Double imageAspect = (Double)pictureBox1.Image.Width/(Double)pictureBox1.Image.Height;
Double pbAspect = (Double)pictureBox1.Width/(Double)pictureBox1.Height;
Boolean heightRestricted = imageAspect < pbAspect;
hPadding = 0;
vPadding = 0;
if (heightRestricted)
{
zoom = (Double)pictureBox1.Height/(Double)pictureBox1.Image.Height;
Double imageWidth = (Double)pictureBox1.Image.Width * zoom;
hPadding = (Double)(pictureBox1.Width - imageWidth)/2d;
}
else
{
zoom = (Double)pictureBox1.Width/(Double)pictureBox1.Image.Width;
Double imageHeight = (Double)pictureBox1.Image.Height * zoom;
vPadding = (Double)(pictureBox1.Height - imageHeight)/2d;
}
}
같이 무효라는 픽셀 무효화 : 내가 처음 이런 짓을 할 때
pictureBox1.Invalidate(new Rectangle(Convert.ToInt32(Math.Floor(x * zoom)) + Convert.ToInt32(hPadding) -1, Convert.ToInt32(Math.Floor(y * zoom)) + Convert.ToInt32(vPadding) -1, PixelSize, PixelSize));
내가 단지를 무효화를 픽셀에 의해 직접적으로 덮여 있지만, 이것이 반올림 에러의 대상이되어 약간의 여분을 포함하도록 확장되었다.
그런 식으로 각 픽셀에서 이미지 처리가 어떻게 작동하는지 알지 못한다. 나는 거기에 도착하는 단계 대신 완성 된 제품만을 얻는다. –
어쨌든 모든 픽셀에서 효과가있는 것을 보지 못할 것입니다. 그렇지 않으면 처리 속도가 느려지지는 않습니다. 모니터가 1 초에 1000 번 업데이트 할 수 없음을 잊지 마십시오. – Mario
조사하고 싶은 지역을보고있을 때 그것을 숙제하고 있지만 큰 이미지를보고있을 때 관심있는 곳으로 이동하는 데 10 분 정도 걸릴 수 있습니다. –