我们有使用 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 项目上打开这个文件时,它显示蓝屏。我尝试比较有效的图像和无效的图像。这是屏幕,
Working:
不工作:
Update:这解决了我的问题将 TIFF 转换为 1 位 https://stackoverflow.com/questions/26930656/convert-tiff-to-1bit
我知道您通过将输入图像转换为 1 位找到了问题的解决方案,但我想详细说明原始问题的原因,即 LEADTOOLS 首先没有正确打开 32 位文件。
您尚未指定您使用的是哪个版本的 LEADTOOLS,但由于它是遗留的 VB6 应用程序,因此它可能是一个相当旧的版本(介于 v10 和 v17 之间;当前版本是 20)。
无论如何,即使是旧版本的 SDK 在打开 32 位 TIFF 文件时也应该没有问题,但您的应用程序可能缺少以下一项或两项要求:
TIFF 文件的不同子类型需要不同的 LEADTOOLS DLL。这在帮助主题中进行了解释您的申请中包含的文件 https://www.leadtools.com/help/leadtools/v17/main/ocx/dllaux/14files.htm.
早在 LZW 拥有有效专利的时代,旧版本的 SDK 就需要特殊许可证才能支持 LZW 压缩。如果您使用这些版本之一并且您的应用程序没有该许可证,则它将不支持 LZW tiff 或 gif 文件。
请注意,即使是较旧 SDK 版本的所有者也可以获得免费支持。因此,如果您是原始 SDK 的所有者,请随时将任何问题以及您的 LEADTOOLS 产品序列号通过电子邮件发送至 support@leadtools.com。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)