Я работаю с объектом Crystal Reports в Visual Studio 2008 (C#). Отчет строит отлично, и данные привязываются правильно. Однако, когда я пытаюсь изменить размер IBlobFieldObject из источника, масштаб становится искаженным.Crystal Reports Programmatic Image Resizing ... Scale?
Две записи об этом сценарии. Исходное изображение - 1024x768, максимальная ширина и высота - 720x576. Моя математика должна быть правильной, чтобы мой новый размер изображения был 720x540 (чтобы соответствовать максимальным требованиям по ширине и высоте). Отношение это неправильно, когда я делаю это, хотя:
img = Image.FromFile(path);
newWidth = img.Size.Width;
newHeight = img.Size.Height;
if ((img.Size.Width > 720) || (img.Size.Height > 576))
{
double ratio = Convert.ToDouble(img.Size.Width)/Convert.ToDouble(img.Size.Height);
if (ratio > 1.25) // Adjust width to 720, height will fall within range
{
newWidth = 720;
newHeight = Convert.ToInt32(Convert.ToDouble(img.Size.Height) * 720.0/Convert.ToDouble(img.Size.Width));
}
else // Adjust height to 576, width will fall within range
{
newHeight = 576;
newWidth = Convert.ToInt32(Convert.ToDouble(img.Size.Width) * 576.0/Convert.ToDouble(img.Size.Height));
}
imgRpt.Section3.ReportObjects["image"].Height = newHeight;
imgRpt.Section3.ReportObjects["image"].Width = newWidth;
}
Я ступил через код, чтобы убедиться, что значения являются правильными из математики, и я даже сохранил изображение файла, чтобы убедиться, что соотношение сторон правильное (это было). Независимо от того, что я пытаюсь, изображение сжато - почти так, как если бы значения Scale были отключены в дизайнере Crystal Reports (это не так). Заранее благодарю за любую помощь!