日本国产亚洲-日本国产一区-日本国产一区二区三区-日本韩国欧美一区-日本韩国欧美在线-日本韩国欧美在线观看

當前位置:雨林木風下載站 > 技術(shù)開發(fā)教程 > 詳細頁面

VFP處理JPG圖像文件辦法談

VFP處理JPG圖像文件辦法談

更新時間:2022-04-27 文章作者:未知 信息來源:網(wǎng)絡 閱讀次數(shù):

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


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


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


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


  為實現(xiàn)上述的構(gòu)想,本文提供了兩個函數(shù),一個是將圖像文件保存到Memo型字段中,另一個是將Memo型字段中的圖像保存到一個外部文件中。


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


  Procedure s—ftom


  lparameter s—cfield , s—cfile


  local s—temp—str


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


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


   return .F.


  endif


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


   =MessageBox( ″ ′ ″+s—cfield +″ ′ ″+ ″字段必須是二進制備注型數(shù)據(jù)!″,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字段為空或讀寫錯誤時該過程返回的隱含信息。該過程調(diào)用成功后返回所寫的圖像文件名,否則返回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(″參數(shù)類型錯!″,48,″提示″)


   return ′′


  endif


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


   =MessageBox( ″ ′ ″+s—cfield +″ ′ ″+ ″字段必須是二進制備注型數(shù)據(jù)!″,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的情況,處理速度非常滿意。當圖像文件較大時,則顯示速度比較慢。

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

本類教程下載

系統(tǒng)下載排行

主站蜘蛛池模板: 国产精品久久久久这里只有精品 | 最新浮力影院 | 精品中文字幕在线 | 国产浮力影院第一页 | 青青青免费网站在线观看 | 欧美精品一区二区三区在线 | 欧美激情一区二区三级高清视频 | 爱爱帝国亚洲一区二区三区 | 国产一级毛片在线 | 欧美一区二区在线观看 | 精品国产一区二区三区不卡在线 | 色黄啪啪18周岁以下禁止观看 | 婷婷狠狠操 | 日韩片在线观看 | 九九自拍视频 | 色婷婷狠狠五月综合天色拍 | 久在草视频 | 看性过程三级视频在线观看 | 亚洲综合视频在线观看 | 狠狠色狠狠色综合日日92 | 欧美激情一区二区三区不卡 | 色婷婷亚洲五月色综合色 | 午夜看片在线 | flypaper未删减手机在线观看 | 最新中文字幕日本 | 99爱这里只有精品 | 女人被狂躁的免费视频高清 | 婷婷综合久久中文字幕 | 香蕉eeww99国产在线观看 | 欧美成人三级一区二区在线观看 | 欧美亚洲国产精品久久久 | 久久综合九色综合亚洲 | 亚洲欧美一区二区久久香蕉 | 亚洲国产精品一区二区不卡 | 日韩精品午夜视频一区二区三区 | 搡的我好爽视频在线观看 | 欧美视频在线不卡 | 成人小视频在线观看免费 | 亚洲国产精品免费观看 | 久久成人免费网站 | 日本九色 |