Существует несколько проблем, связанных с тем, как Crystal Reports обрабатывает объекты IBlobFieldObject.Первая проблема, с которой я столкнулся, заключалась в том, что встроенная документация была неправильной для свойств высоты и ширины Crystal Reports «ReportObjects».Это говорит о том, что значения указаны в твипах, которые они не делают.Например:
ImageReport imgRpt = new ImageReport();
// The following value should be in PIXELS... NOT twips as the docs suggest!
imgRpt.Section3.ReportObjects["image"].Height = 300;
Вторая проблема была связана с преобразованием imageToByteArray, которое я делал.Вот метод, который я использовал:
public byte[] imageToByteArray(System.Drawing.Image imageIn)
{
MemoryStream ms = new MemoryStream();
// The following line was ImageFormat.Jpeg, but it caused sizing issues
// in Crystal Reports. Changing to ImageFormat.Bmp made the squashed
// problems go away.
imageIn.Save(ms, System.Drawing.Imaging.ImageFormat.Bmp);
return ms.ToArray();
}
В итоге получается, что Crystal Reports предпочитает ImageFormat.Bmp для заполнения IBlobFieldObjects.Теперь, если кто-нибудь скажет мне, как исправить ужасную глубину использования ImageFormat.Bmp (это, скорее всего, способ, которым объект отчета Crystal Reports обрабатывает данные изображения, и, возможно, его нельзя исправить), я был бы полностью готов.