合并和分割多页图像- Windows C DLL

本教程展示了如何在Windows C/ c++ API应用程序中使用LEADTOOLS SDK合并和分割多页图像。

概述
总结 本教程演示如何在Windows CDLL应用程序中使用LEADTOOLS SDK处理多页图像。
完成时间 30分钟
Visual Studio项目 下载教程项目(19kb)
平台 Windows C DLL应用程序
IDE Visual Studio 2017, 2019
开发许可 下载LEADTOOLS

所需的知识

在开始合并和分割多页图像- Windows C DLL教程,熟悉创建项目和加载/显示图像的基本步骤添加引用和设置License而且加载,显示和保存图像教程。

创建项目并添加LEADTOOLS引用

中创建的64位Windows API项目的副本开始加载,显示和保存图像教程。如果项目不可用,请按照该教程中的步骤创建它。

确保以下所需的头文件和DLL文件包含在预编译的头文件(或pch.hstdafx.h,取决于所使用的Visual Studio的版本)。

# include“C: \ LEADTOOLS21 \ \ L_Bitmap.h包括”//使用安装LEADTOOLS的实际路径# pragma评论(自由,“C: \ \ LEADTOOLS21 \ \ Lib \ \ CDLL \ \ x64 \ \ Ltkrn_x.lib”# pragma评论(自由,“C: \ \ LEADTOOLS21 \ \ Lib \ \ CDLL \ \ x64 \ \ Ltfil_x.lib”//文件加载和保存# pragma评论(自由,“C: \ \ LEADTOOLS21 \ \ Lib \ \ CDLL \ \ x64 \ \ Ltdis_x.lib”/ /图像显示

请注意

有关应用程序所需的dll的完整列表,请参阅要包含在应用程序中的文件- C API

设置License文件

许可证解锁项目所需的特性。它必须在调用任何工具包功能之前设置。有关详细信息,包括针对不同平台的教程,请参阅设置运行时License

有两种类型的运行时许可证:

请注意

中更详细地介绍了添加LEADTOOLS引用和设置许可证添加引用和设置License教程。

添加合并图像代码

创建了项目、添加了引用、设置了许可证、添加了加载、显示和保存代码之后,就可以开始编码了。

以下步骤是针对Visual Studio 2019的;对于其他版本的Visual Studio,它们可能会有所不同。

解决方案资源管理器然后双击资源文件(.rc)。

添加一个新的合并图片的菜单项文件下拉菜单,之间开放而且保存物品。接下来添加一个新的分割文件的菜单项文件下拉菜单,之间合并图片而且保存物品。

指向功能和开关(wmId)语句的下面WM_COMMANDCase,添加一个新的Case:

开关(wmId)情况下ID_FILE_MERGEIMAGES:TCHAR szOldTitle [1024];GetWindowText (hWnd, szOldTitle, 1024);WIN32_FIND_DATA = {0};HANDLE hfindng = FindFirstFile(TEXT)“C: \ \ LEADTOOLS21 \ \ \ \ \ \ * . png图像资源”), &findData);BOOL foundPage = (hfindng != INVALID_HANDLE_VALUE);(foundPage)szPageFilename TCHAR szWindowTitle [1024], [1024];wsprintf (szWindowTitle文本("正在追加页面%s…"), findData.cFileName);SetWindowText (hWnd, szWindowTitle);睡眠(200);//延迟查看标题wsprintf (szPageFilename文本(“C: \ \ LEADTOOLS21 \ \资源图片\ \ \ \ % s”), findData.cFileName);AppendTiffPage (szPageFilename文本(“C: \ \ LEADTOOLS21 \ \ \ \ \ \图片资源merged.tif”));foundPage = FindNextFile(hfindng, &findData);如果(hFindPng ! = INVALID_HANDLE_VALUE)FindClose (hFindPng);SetWindowText (hWnd, szOldTitle);打破//保持其余代码不变

将下面的代码添加到AppendTiffPage函数。这个函数可以放在上面指向功能:

无效AppendTiffPage (TCHAR * pszInputPageFile,常量TCHAR * pszOutputMultipageTiff)BmpPage = {0};L_INT nRet = L_LoadBitmap(pszInputPageFile, &BmpPage,运算符Bitmaphandle, 0, order_bgr, null, null);如果(成功= = nRet)SAVEFILEOPTION = {0};L_GetDefaultSaveFileOption (&saveOption运算符SAVEFILEOPTION);saveOption。PageNumber = 2;L_SaveBitmap((TCHAR*)pszOutputMultipageTiff, &BmpPage, FILE_TIFLZW, 0,2, &saveOption);L_FreeBitmap (&BmpPage);

添加分裂镜像代码

指向函数中添加一个新案例开关(wmId)声明:

开关(wmId)情况下ID_FILE_SPLITFILE:SplitFile(文本(“C: \ \ LEADTOOLS21 \ \ \ \ \ \图片资源merged.tif”));打破//保持其余代码不变

将下面的代码添加到SplitFile功能,可以放在上面指向功能:

# include < shlwapi.h ># pragma评论(自由,“Shlwapi.lib”无效SplitFile (常量TCHAR * pszMultipageFile)TCHAR szPageBaseName [1024];StrCpy (szPageBaseName pszMultipageFile);PathRemoveExtension (szPageBaseName);FILEINFO FILEINFO = {0};//IMPORTANT:在使用该结构之前必须将其归零L_FileInfo (TCHAR *) pszMultipageFile &fileInfo,运算符FILEINFO FILEINFO_TOTALPAGES, NULL);inti = 1;我< = fileInfo.TotalPages;+ + i)BmpPage = {0};LOADFILEOPTION LoadOption = {0};L_GetDefaultLoadFileOption (&LoadOption运算符LOADFILEOPTION);LoadOption。PageNumber =我;L_INT nRet = L_LoadBitmap((TCHAR*)pszMultipageFile, &BmpPage,运算符BITMAPHANDLE, 0, order_bgorgray, &LoadOption, NULL);如果(成功! = nRet)/ /跳过这一页打破TCHAR szPageName [1024];wsprintf (szPageName文本(“% s_page % d.png”), szPageBaseName,我);L_SaveBitmap(szPageName, &BmpPage, FILE_PNG, 0,9, NULL);L_FreeBitmap (&BmpPage);

运行该项目

通过按运行项目F5,或选择调试->开始调试

如果正确地执行了这些步骤,应用程序应该会运行。选择文件->合并图片文件中的[PNG]文件图片目录到一个单一的[TIFF]文件。

选择文件->分割文件把每一页分开merged.tif转换为[PNG]文件,并在名称后面附加页码。

总结

本教程介绍了如何将一个目录中的多个[PNG]图像合并到一个[TIFF]文件中。还学习了如何将多页[TIFF]图像分割成单独的文件。

另请参阅

net
iOS
188金宝搏的网址客服|支持|联系我们|知识产权的通知
©1991 - 2021领先的技术公司。保留所有权利。