合并和分裂多页图像——Windows DLL

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

概述
总结 本教程展示了如何使用多页图像使用Windows CDLL中的LEADTOOLS SDK应用程序。
完成时间 30分钟
Visual Studio项目 下载教程项目(19 KB)
平台 Windows C DLL应用程序
IDE Visual Studio 2017中,2019年
开发许可 下载LEADTOOLS
试试用另一种语言

所需的知识

在工作之前合并和分裂多页图像——Windows DLL教程中,熟悉的基本步骤,创建一个项目和加载/显示一个图像,通过审查添加引用和设置一个许可证负载、显示和保存图像教程。

创建项目并添加LEADTOOLS引用

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

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

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

请注意

对于一个完整的列表应用程序所需的dll,请参考文件包含在应用程序- C API

设置许可文件

许可解锁项目需要的特性。它之前必须设置工具箱功能。详情,包括教程为不同的平台,请参考设置一个运行时许可

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

请注意

添加LEADTOOLS引用和设置许可中会详细介绍添加引用和设置一个许可证教程。

添加代码合并图像

与项目创建、引用添加许可,和负载,显示、添加并保存代码,代码就可以开始了。

下面的步骤是针对Visual Studio 2019;他们可以为其他版本的Visual Studio是不同的。

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

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

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

开关(wmId){情况下ID_FILE_MERGEIMAGES:{TCHAR szOldTitle [1024];GetWindowText (hWnd, szOldTitle, 1024);WIN32_FIND_DATA findData = {0};处理hFindPng = FindFirstFile(文本(“C: \ \ LEADTOOLS22 \ \ \ \ \ \ * . png图像资源”),&findData);BOOL foundPage = (hFindPng ! = INVALID_HANDLE_VALUE);(foundPage){szPageFilename TCHAR szWindowTitle [1024], [1024];wsprintf (szWindowTitle文本(“附加页面% s……”),findData.cFileName);SetWindowText (hWnd, szWindowTitle);睡眠(200);/ /延迟看到标题wsprintf (szPageFilename文本(“C: \ \ LEADTOOLS22 \ \资源图片\ \ \ \ % s”),findData.cFileName);AppendTiffPage (szPageFilename文本(“C: \ \ LEADTOOLS22 \ \ \ \ \ \图片资源merged.tif”));foundPage = FindNextFile (hFindPng &findData);}如果(hFindPng ! = INVALID_HANDLE_VALUE)FindClose (hFindPng);SetWindowText (hWnd, szOldTitle);}打破;/ /把剩下的代码

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

无效AppendTiffPage (TCHAR * pszInputPageFile,常量TCHAR * pszOutputMultipageTiff){BITMAPHANDLE BmpPage = {0};L_INT nRet = L_LoadBitmap (pszInputPageFile &BmpPage,运算符BITMAPHANDLE 0 ORDER_BGR,空,空);如果(成功= = nRet){SAVEFILEOPTION saveOption = {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: \ \ LEADTOOLS22 \ \ \ \ \ \图片资源merged.tif”));打破;/ /把剩下的代码

添加以下代码SplitFile函数,它可以放在上面指向功能:

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

运行该项目

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

如果是正确的步骤,应用程序应该运行。选择文件- >合并图片合并所有的PNG文件位于图片目录为一个TIFF文件。

选择文件- >分割文件把每一页merged.tif与页码(PNG)文件附加到这个名字。

总结

本教程介绍了如何合并多个(PNG)图像从一个目录到TIFF文件。还学习了如何将多页TIFF图像成单个文件。

另请参阅

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