明輝手游網(wǎng)中心:是一個(gè)免費(fèi)提供流行視頻軟件教程、在線學(xué)習(xí)分享的學(xué)習(xí)平臺(tái)!

用BCB完成超星格式轉(zhuǎn)換為BMP格式

[摘要]flywolf(lywolf@ynmail.com)  首先,請(qǐng)下載最新的“超星3.4Beta 7”,安裝后,運(yùn)行Delphi5,選擇Component->Import ActiveX Control,然后,你會(huì)發(fā)現(xiàn)“Import ActiveX”中有一個(gè)選擇為“Pdg2 Type Libr...
flywolf(lywolf@ynmail.com)

  首先,請(qǐng)下載最新的“超星3.4Beta 7”,安裝后,運(yùn)行Delphi5,選擇Component->Import ActiveX Control,然后,你會(huì)發(fā)現(xiàn)“Import ActiveX”中有一個(gè)選擇為“Pdg2 Type Library(Version 1.0)”.....,剩下的事不用我說(shuō)了吧。
  我的方法:
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); //這一操作需要一段時(shí)間
    j:=false;
    while j=false do
    begin
       MyPdg.CopyToClipBoard (0,0,MyPdg.PageWidth ,MyPdg.PageHeight);
       for i:=0 to clipboard.FormatCount -1 do  //檢測(cè)ClipBoard中是否有位圖,因?yàn)槲以谡{(diào)試中發(fā)現(xiàn)有時(shí)執(zhí)行MyPdg.CopyToClipBoard (0,0,MyPdg.PageWidth ,MyPdg.PageHeight);會(huì)出錯(cuò),只有檢測(cè)到有位圖存在時(shí),再進(jìn)行復(fù)制.
       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;
  
另外,如果對(duì)整個(gè)目錄下的文件連續(xù)進(jìn)行轉(zhuǎn)換,請(qǐng)?jiān)谙噜弮纱无D(zhuǎn)換過(guò)程中插入
    Sleep(1000);//給超星一點(diǎn)時(shí)間,否則她會(huì)有意見(jiàn),不干活啦!!!

且 Mypdg.Visible必須設(shè)置True;

我發(fā)現(xiàn)轉(zhuǎn)為BMP后用清華OCR識(shí)別的效果并不好,如果各位有什么高見(jiàn),拿出來(lái)大伙公分享吧!!