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

Image Created using GDI+ is not showing in VB6 LeadTools

我们有使用 VB6 构建的遗留应用程序。这些应用程序使用引导工具。一切正常。我们有另一个优化图像(并做一些水印)并将其保存为 tiff 格式的 .NET 进程。这是 .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 项目中打开这个文件时,它显示蓝屏。我试图比较有效的图像和无效的图像。这是屏幕,

工作:

不工作:

更新: 这解决了我的问题 Convert TIFF to 1bit

我知道您通过将输入图像转换为 1 位找到了解决问题的方法,但我想详细说明原始问题的原因,即 LEADTOOLS 无法正确打开 32 位文件第一名。

您没有指定您使用的是哪个版本的 LEADTOOLS,但由于它是遗留的 VB6 应用程序,它可能是一个相当旧的版本(介于 v10 和 v17 之间;当前版本是 20)。

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

  1. TIFF 文件的不同子类型需要不同的 LEADTOOLS DLL。这在帮助主题 Files to be Included with Your Application.

  2. 中有解释
  3. 旧版本的 SDK 需要特殊许可才能支持 LZW 压缩,那时候 LZW 有有效的专利。如果您使用的是这些版本之一并且您的应用程序没有该许可证,它将不支持 LZW tiff 或 gif 文件。

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