用BCB完成超星格式轉換為BMP格式
發表時間:2024-05-15 來源:明輝站整理相關軟件相關文章人氣:
[摘要]flywolf(
[email protected]) 首先,請下載最新的“超星3.4Beta 7”,安裝后,運行Delphi5,選擇Component->Import ActiveX Control,然后,你會發現“Import ActiveX”中有一個選擇為“Pdg2 Type Libr...
flywolf(
[email protected])
首先,請下載最新的“超星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識別的效果并不好,如果各位有什么高見,拿出來大伙公分享吧!!!