В рамках процедуры печати моего приложения я пытаюсь распечатать список изображений, уменьшенных до указанной ширины и размещенных одно под другим. Проблема в том, что я не могу понять, как преобразовать высоту в пикселях изображений в высоту в единицах, используемых графическим объектом во время печати. Как правильно рассчитать переменную 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;