龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > 软件开发 > C/C++开发 >

超星格式-BMP

时间:2009-12-22 15:42来源:未知 作者:admin 点击:
分享到:
最近,我偶然发现了一个超星 -> BMP的方法。 首先,请下载最新的“超星3.4Beta 7”,安装后,运行Delphi5,选择Component->Import ActiveX Control,然后,你会发现“Import ActiveX”中有一个选择为

  最近,我偶然发现了一个超星 -> BMP的方法。

  

  首先,请下载最新的“超星3.4Beta 7”,安装后,运行Delphi5,选择Component->Import ActiveX Control,然后,你会发现“Import ActiveX”中有一个选择为“Pdg2 Type Library(Version 1.0)”.....,剩下的事不用我说了吧。

  

  我的方法:

  

procedure TMainForm.PdgToBmp(FPdgName, FBmpName: string);//FPdgname--超星格式文件名 FBmpName--要保存的BMP文件名。

  

var i:integer;

  

j:boolean;

  

begin

  

ClipBoard.Clear;

  

MyPdg.LoadPage(FPdgName,0,0,10);

  

Mypdg.Refresh;

  

MyPdg.CopyToClipBoard (0,0,MyPdg.PageWidth ,MyPdg.PageHeight); //这一操作需要一段时间

  

j:=false;

  

while j=false do

  

begin

  

MyPdg.CopyToClipBoard (0,0,MyPdg.PageWidth ,MyPdg.PageHeight);

  

for i:=0 to clipboard.FormatCount -1 do //检测ClipBoard中是否有位图,因为我在调试中发现有时执行MyPdg.CopyToClipBoard (0,0,MyPdg.PageWidth ,MyPdg.PageHeight);会出错,只有检测到有位图存在时,再进行复制.

  

if Clipboard.Formats[i]=2 then j:=true;

  

end;

  

Bmp.LoadFromClipBoardFormat(cf_BitMap,ClipBoard.GetAsHandle(cf_Bitmap),0);

  

bmp.PixelFormat:=pf1bit ;

  

bmp.SaveToFile(FBmpName);

  

end;

  

  

另外,假如对整个目录下的文件连续进行转换,请在相邻两次转换过程中插入

  

Sleep(1000);//给超星一点时间,否则她会有意见,不干活啦!!!

  

  

且 Mypdg.Visible必须设置True;

  

  

我发现转为BMP后用清华OCR识别的效果并不好,假如各位有什么高见,拿出来大伙公分享吧!!!

  

精彩图集

赞助商链接