使用GDI +创建的图像未在VB6 LeadTools中显示

我们有使用VB6构建的遗留应用程序。 这些应用程序使用的是铅工具。 一切都很完美。 我们有另一个.NET进程来优化图像(并进行一些水印)并以tiff格式保存。 这是.NET代码的一瞥,

using (var bitmap = new Bitmap(contractWidth, contractHeight)) { using (var canvas = Graphics.FromImage(bitmap)) { canvas.InterpolationMode = InterpolationMode.Default; // Play with canvas canvas.Save(); } using (var stream = new MemoryStream()) { bitmap.Save(stream, ImageFormat.Tiff); return stream.ToArray(); } } 

当我们以tiff格式保存时(比如image.tif)。 但是当我们在VB6项目上打开这个文件时,它会显示一个蓝屏。 我试图比较正在工作的图像和不起作用的图像。 这是屏幕,

工作:

工作

不工作:

在此处输入图像描述

更新:这解决了我的问题将TIFF转换为1位

我知道你通过将输入图像转换为1位找到了问题的解决方案,但我想详细说明原始问题的原因,即LEADTOOLS首先没有正确打开32位文件。

您尚未指定使用哪个版本的LEADTOOLS,但由于它是传统的VB6应用程序,因此它可能是一个相当旧的版本(介于v10和v17之间;当前版本为20)。

在任何情况下,即使是旧版本的SDK在打开32位TIFF文件时也没有问题,但是您的应用程序可能缺少以下一个或两个要求:

  1. 不同的TIFF文件子类型需要不同的LEADTOOLS DLL。 这将在帮助主题“应用程序中包含的文件”中进行说明。

  2. 早期版本的SDK需要特殊许可证才能支持LZW压缩,早在LZW上有活跃专利的时候。 如果您使用的是其中一个版本并且您的应用程序没有该许可证,则它将不支持LZW tiff或gif文件。

请注意,即使是旧SDK版本的所有者也可获得免费支持。 因此,如果您是原始SDK的所有者,请随时将任何问题通过电子邮件发送至support@leadtools.com,以及您的LEADTOOLS产品序列号。