2009-04-28 2 views
0

내 응용 프로그램의 인쇄 절차의 일부로 지정된 폭으로 축소 된 이미지리스트를 인쇄하려고합니다. 문제는 인쇄하는 동안 그래픽 객체가 사용하는 단위로 이미지의 높이를 높이로 변환하는 방법을 이해할 수 없다는 것입니다. imageHeightPrint 변수를 올바르게 계산하려면 어떻게해야합니까?그래픽 객체에서 사용하는 인쇄 크기로 이미지의 픽셀 높이를 변환합니다.

이 코드 단편은 이미지 인쇄 루프에서 이미지의 크기를 줄이고 높이와 다음 이미지의 위치를 ​​계산하는 부분입니다.

Image image = Image.FromStream(imageStream); 

// Get proportional correct height 
int imageHeight = image.Height * imageWidth/image.Width; 

Image imageToPrint = image.GetThumbnailImage(imageWidth, imageHeight, null, IntPtr.Zero); 

float imageHeightPrint = e.Graphics.DpiY * imageToPrint.Height/imageToPrint.VerticalResolution; 

e.Graphics.DrawImage(imageToPrint, e.MarginBounds.Left, yPos); 

yPos += imageHeightPrint; 

답변

4

문서를 해부 한 후 정확한 해결책을 찾았습니다.

이 줄 :

float imageHeightPrint = e.Graphics.DpiY * imageToPrint.Height/imageToPrint.VerticalResolution; 

이로 변경해야합니다 내가 놓친

float imageHeightPrint = imageToPrint.Height/
         imageToPrint.VerticalResolution * 100; 

가장 큰 것은 높이에서 인쇄가 인치의 백분해야한다고했다.

관련 문제