• <label id="pxtpz"><meter id="pxtpz"></meter></label>
      1. <span id="pxtpz"><optgroup id="pxtpz"></optgroup></span>

        當前位置:雨林木風下載站 > 技術開發教程 > 詳細頁面

        VFP處理JPG圖像文件辦法談

        VFP處理JPG圖像文件辦法談

        更新時間:2022-04-27 文章作者:未知 信息來源:網絡 閱讀次數:

        Bitmap是非壓縮型圖像文件,占用的存儲空間很大,而JPG圖像文件是壓縮型圖像文件,因此,正確保存和顯示JPG等圖像文件具有很高的實用價值。


          在VFP編程中,需保存圖像文件時,通常是將圖像以OLE方式保存到一個GENERAL型字段中。當需要在表單中顯示該圖像時,則使用OLE Bound控件,并將該控件綁定到保存圖像的字段上即可。


          上述方法對于保存和顯示Bitmap位圖時沒有問題,但是對JPG、GIF等圖像文件則無法顯示圖像,而只能將其保存時的圖像文件名顯示出來。


          VFP 6.0版中的Imgae控件支持 bmp、gif、jpg和ico等圖像文件格式,但是該控件不能綁定到保存圖像文件的GENERAL型字段上。本文所采用的基本思路是:不將圖像文件保存到GENERAL型字段中,而是把圖像文件保存到一個二進制的Memo型字段中,當需要顯示圖像時,則將該Memo型字段的內容輸出到一個臨時文件中,然后再將臨時文件名賦給Image控件中Picture屬性即可顯示圖像。在報表打印輸出時,也可以采用類似的方法打印圖像。


          為實現上述的構想,本文提供了兩個函數,一個是將圖像文件保存到Memo型字段中,另一個是將Memo型字段中的圖像保存到一個外部文件中。


          下面的過程文件是將一個外部圖像文件保存到二進制Memo型字段中。圖像文件在Memo型字段中的格式為:前128個字節保存原始圖像文件名,其后的數據為圖像數據。


          Procedure s—ftom


          lparameter s—cfield , s—cfile


          local s—temp—str


          if vartype(s—cfield) !=″C″ or vartype(s—cfile) !=″C″


           =MessageBox(″參數類型錯!″,48,″提示″)


           return .F.


          endif


          if type(″&s—cfield″) != ″M″


           =MessageBox( ″ ′ ″+s—cfield +″ ′ ″+ ″字段必須是二進制備注型數據!″,48,″提示″)


           return .F.


          endif


          if !file( s—cfile)


           =MessageBox( ″文件:″+s—cfile+″ 不存在!″,48,″提示″)


           return .F.


          endif


          s—temp—str=PADR(JUSTFNAME(s—cfile),128, ′ ′)+filetostr(s—cfile)


          replace (s—cfield) with s—temp—str


          return .T.


          endproc


          下面的過程文件是將Memo型字段中的圖像保存到外部文件中,s—default—return當Memo字段為空或讀寫錯誤時該過程返回的隱含信息。該過程調用成功后返回所寫的圖像文件名,否則返回s—default—return的值。


          procedure s—mtof


          lparameter s—cfield, s—cfile, s—default—return, s—old—file


          local s—temp—str, s—old—file, s—return


          clear resource


          s—return=s—default—return


          s—old—file=′′


          if vartype(s—cfield) !=″C″ or vartype(s—cfile) !=″C″ or vartype(s—default—return) !=″C″


           =MessageBox(″參數類型錯!″,48,″提示″)


           return ′′


          endif


          if type(″&s—cfield″) != ″M″


           =MessageBox( ″ ′ ″+s—cfield +″ ′ ″+ ″字段必須是二進制備注型數據!″,48,″提示″)


           return s—return


          endif


          s—temp—str = &s—cfield


          if len(s—temp—str) 〈= 128


           return s—return


          endif


          s—old—file = alltrim(left(s—temp—str,128))


          if empty(s—cfile)


           s—return=s—old—file


          else


           s—return=defaultext( s—cfile, alltrim(justext(s—old—file)) )


          endif


          =STRTOFILE( substr(s—temp—str,129), s—return, .F.)


          return s—return


          endproc


          筆者使用該方法處理了大量的圖像文件,在CPU 為P133的電腦上,對于每個圖像文件不大于1.5MB的情況,處理速度非常滿意。當圖像文件較大時,則顯示速度比較慢。

        溫馨提示:喜歡本站的話,請收藏一下本站!

        本類教程下載

        系統下載排行

        主站蜘蛛池模板: 91青青国产在线观看免费| 韩国免费A级毛片久久| 亚洲av无码不卡一区二区三区 | 不卡精品国产_亚洲人成在线 | 亚洲色偷偷偷综合网| 亚洲美女激情视频| 亚洲第一精品福利| 亚洲精品自产拍在线观看| 免费一级e一片在线播放| 亚洲国产精品成人久久蜜臀| 无码日韩精品一区二区免费| 亚洲人成免费电影| 国产精品色拉拉免费看| 免费黄色福利视频| 蜜桃视频在线观看免费网址入口| 亚洲人成免费网站| 国产又大又长又粗又硬的免费视频 | 91在线视频免费91| 免费观看一级毛片| 亚洲色成人WWW永久网站| 日本红怡院亚洲红怡院最新 | 无码日韩精品一区二区三区免费 | 免费国产成人高清视频网站| 亚洲精品NV久久久久久久久久| 亚洲欭美日韩颜射在线二| 亚洲欧洲日韩国产综合在线二区| 亚洲an天堂an在线观看| 亚洲啪AV永久无码精品放毛片| 免费无码专区毛片高潮喷水| 中文字幕在线视频免费| 毛片基地免费观看| 亚洲午夜福利717| 亚洲色大成网站www久久九| 日韩精品无码免费专区网站| 91在线品视觉盛宴免费| 亚洲午夜久久久久久久久久| 亚洲 日韩 色 图网站| 免费萌白酱国产一区二区三区| 国外成人免费高清激情视频| 亚洲精品无码不卡在线播放HE | 天天天欲色欲色WWW免费|