程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> 關於C++ >> 超星格式轉換BMP的方法

超星格式轉換BMP的方法

編輯:關於C++

flywolf(mailto:[email protected])

最近,我偶然發現了一個超星 -> 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識別的效果並不好,如果各位有什麼高見,拿出來大伙公分享吧!

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved