gpt4 book ai didi

c# - Crystal Reports 程序化图像调整大小...缩放?

转载 作者:太空宇宙 更新时间:2023-11-03 11:48:22 24 4
gpt4 key购买 nike

我在 Visual Studio 2008 (C#) 中使用 Crystal Reports 对象。报告构建良好,数据绑定(bind)正确。但是,当我尝试从源中调整 IBlobFieldObject 的大小时,比例会发生偏差。

关于这个场景的两个注释。源图像是 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;
}

我已经逐步检查代码以确保数学值是正确的,我什至保存了图像文件以确保纵横比是正确的(它是)。不管我尝试什么,图像都被压扁了——几乎就像 Crystal Reports 设计器中的比例值被关闭一样(它们不是)。在此先感谢您的帮助!

最佳答案

Crystal Reports 处理 IBlobFieldObjects 的方式有几个问题。我遇到的第一个问题是内联文档对于 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 来填充 IBlobFieldObject。现在,如果有人能告诉我如何解决使用 ImageFormat.Bmp 时可怕的位深度(这很可能是 Crystal Reports Report 对象处理图像数据的方式,并且可能无法修复),我会准备就绪。

关于c# - Crystal Reports 程序化图像调整大小...缩放?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2789607/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com