一些文件格式变得相当缓慢加载或转换时,有很多的页面。这是因为到N你有时必须通过页1页,2,…N - 1前N页等格式,通常加载页面N N的增加变得越来越慢。
LEADTOOLS提供一个机制来加速装运或转换的文件。文件格式,可以处理这种方式包括以下格式:
使用这种机制,执行以下步骤:
不使用过滤数据在多个线程,有以下原因:
例子:
/ *这个helper函数将一个文件保存在一个特定的文件夹* /
静态L_INT SavePage (pBITMAPHANDLE pBitmap, L_INT nPageNumber, L_TCHAR * pszDir)
{
L_TCHAR szPath [MAX_PATH];
_stprintf_s (szPath _countof (szPath) _T (“% s % d.jpg”)、pszDir nPageNumber);
返回L_SaveBitmap (szPath pBitmap FILE_JPEG_411 0, 20日,NULL);
}
/ *这个函数显示了如何使用加快过滤数据保存的文件有很多页* /
L_INT ConvertFileWithManyPages ()
{
#定义SRC_PDF_FILE _T (“c: \ \ temp \ \ FileWithManyPages.pdf”)
BITMAPHANDLE位图= {0};
FILEINFO FILEINFO = {0};
LOADFILEOPTION LOADFILEOPTION;
L_GetDefaultLoadFileOption (&LoadFileOption运算符(LoadFileOption));
LoadFileOption。PageNumber = 1;
/ *计算总页数和过滤数据* /
L_INT nRet = L_FileInfo (SRC_PDF_FILE &fileInfo,运算符(FILEINFO) FILEINFO_TOTALPAGES | FILEINFO_USEFILTERDATA &LoadFileOption);
如果(nRet = =成功)
{
/ *过滤数据复制到LOADFILEOPTION结构加快负载。
此外,过滤数据将被保存在LOADFILEOPTION自FILEINFO结构将被重写。
* /
如果(fileInfo.pFilterData)
{
LoadFileOption。pFilterData = fileInfo.pFilterData;
LoadFileOption。uFilterDataSize = fileInfo.uFilterDataSize;
LoadFileOption。nFilter = fileInfo.nFilter;
LoadFileOption。Flags2 | = ELO2_USEFILTERDATA;
}
为(L_INT i = 1;我< = fileInfo.TotalPages;我+ +)
{
/ * fileInfo结构只有第一页是完整的。对其他人来说,这只表示格式* /
如果(> 1)
fileInfo。旗帜= FILEINFO_FORMATVALID;
LoadFileOption。PageNumber =我;
nRet = L_LoadBitmap (SRC_PDF_FILE &Data.BitmapHandle,运算符(BITMAPHANDLE), 0 ORDER_BGRORGRAY &LoadFileOption, fileInfo);
如果(nRet = =成功)
{
nRet = SavePage(平差。BitmapHandle LoadFileOption。PageNumber, _T (“c: \ \ temp \ \ \ \ "));
L_FreeBitmap(位图);
}
如果(nRet ! =成功)
打破;
}
* / / *自由过滤数据
L_FreeFilterData (LoadFileOption。nFilter LoadFileOption。pFilterData LoadFileOption。uFilterDataSize L_TRUE);
}
返回nRet;
}
上面的例子使用过滤数据转换所有的页的PDF文件。PDF文件,改进速度将明显当大文件(1000页或更多)转换。其他文件格式,速度可以显著改善甚至用更少的页面(只有10页)。
文件的筛选数据取决于源文件的内容,因此使用过滤数据只有创建它的文件。同时,不要使用过滤后的数据文件内容改变。当文件内容改变,自由过滤数据和检索通过调用另一个副本L_FileInfo一次。
您可以使用过滤器数据加速任何功能LOADFILEOPTION结构:L_FileInfo,L_FileConvertL_LoadXXX(所有负载功能等)。对于函数的列表使用LOADFILEOPTION结构,请参考函数利用LOADFILEOPTION或SAVEFILEOPTION结构。
TIFF / BigTIFF文件使用一个简单的机制(IFD,每个页面或文件偏移量)。关于使用IFD的更多信息,请参考大型TIFF / BigTIFF文件加载和保存。
帮助收藏
光栅net|C API|c++类库|HTML5 JavaScript
文档net|C API|c++类库|HTML5 JavaScript
医疗net|C API|c++类库|HTML5 JavaScript
医疗Web查看器net
188宝金博怎么下载
支持的平台上
net, Java, Android和iOS / macOS组件
C / c++类库的API
HTML5 JavaScript库
你的邮件已经发送到支持!有人应该联系!如果你的问题是紧急请回到聊天。
聊天时间:
周一——周五,上午6点等
谢谢你的反馈!
请填写表单重新开始一个新的聊天。
所有代理目前离线。
聊天时间:
周一-周五
早上8:30 - 6点
联系我们请填写这张表格,我们将通过电子邮件联系你。