VFP 愛用者社區 首頁 VFP 愛用者社區
本討論區為 Visual Foxpro 愛用者經驗交流的地方, 請多多利用"搜尋"的功能, 先查看看有無前例可循, 如果還有不懂的再發問. 部份主題有附加檔案, 須先註冊成為社區居民才可以下載.
 
 常見問題常見問題   搜尋搜尋   會員列表會員列表   會員群組會員群組   會員註冊會員註冊 
 個人資料個人資料   登入檢查您的私人訊息登入檢查您的私人訊息   登入登入

請問如何在 VFP 中製作 BMP 檔

 
發表新主題   回覆主題    VFP 愛用者社區 首頁 -> VFP 討論區
上一篇主題 :: 下一篇主題  
發表人 內容
小桑•無痕



註冊時間: 2003-07-08
文章: 304
來自: Tainan, Taiwan

第 1 樓

發表發表於: 星期一 七月 21, 2003 5:42 pm    文章主題: 請問如何在 VFP 中製作 BMP 檔 引言回覆

請問 FOXPRO 有沒有辦法動態產生一個 BMP 檔?
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件 雅虎訊息通 MSN Messenger
garfield
Site Admin


註冊時間: 2003-01-30
文章: 2157


第 2 樓

發表發表於: 星期一 七月 21, 2003 7:06 pm    文章主題: 引言回覆

利用From來畫線條或顯示圖片, 再使用這裡提供的工具,http://vfp.sunyear.com.tw/viewtopic.php?t=37
將FORM轉成圖檔即可.

_________________
利用>>搜尋<<的功能會比問的還要快得到答案.
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件
小桑•無痕



註冊時間: 2003-07-08
文章: 304
來自: Tainan, Taiwan

第 3 樓

發表發表於: 星期一 七月 21, 2003 10:06 pm    文章主題: 引言回覆

謝謝 Garfield ...
小弟已找到做不出BMP檔的原因...
因為小弟沒注意到這一段「the bmp image data is bit packed but every line must end on a dword boundary - if that not the case, it must be padded with zeroes. Laughing ,所以做出來的BMP檔才會時好時壞。

BMP檔格式參閱http://andrew.sc.ncyu.edu.tw/zip/Bmp1.htm
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件 雅虎訊息通 MSN Messenger
小桑•無痕



註冊時間: 2003-07-08
文章: 304
來自: Tainan, Taiwan

第 4 樓

發表發表於: 星期一 七月 21, 2003 10:19 pm    文章主題: 引言回覆

附上我的測試程式...
如果大家有其他較方便的做法,請多指教,QQ。 Rolling Eyes
代碼:

PUBLIC   gnErrFile
LOCAL   cFileName,nX,nY,nZeroCode
LOCAL   I
nX   =   33
nY   =   60
nZeroCode   =   MOD(4 - MOD(nX * 3,4),4)

*****      製作圖檔 1A.BMP
cFileName   =   '1A.BMP'
gnErrFile   =   FCREATE(cFileName)
FWRITE(gnErrFile,BMPHAND(nX,nY,24))
FOR      I   =   1   TO   nY
      FWRITE(gnErrFile,REPLICATE(RGBCODE(255,150,100),nX) + REPLICATE(CHR(00),nZeroCode))
NEXT   I
FCLOSE(gnErrFile)

RETURN

*****      BMP 檔頭
FUNCTION    BMPHAND(nX,nY,nbiBitCount)
LOCAL      nBMPSize,cCODE,nZeroCode
nZeroCode   =   MOD(4 - MOD(nX * 3,4),4)
nBMPSize   =   nX * nY * 3 + nY * nZeroCode
cCODE      =   "BM" + DWORD(nBMPSize+54) + WORD(00) + WORD(00) + DWORD(54) + DWORD(40) + ;
            DWORD(nX) + DWORD(nY) +WORD(1) + WORD(24) + DWORD(0) + ;
            DWORD(nBMPSize) + DWORD(3780) + DWORD(3780) + DWORD(0) + ;
            DWORD(0)
RETURN(cCODE)
ENDFUNC

*****      轉換格式成 WORD
FUNCTION    WORD(nCODE)
LOCAL   cCODE,nAX,nBX
nAX      =   INT(nCODE/256)
nBX      =   MOD(nCODE,256)
cCODE   =   CHR(nBX) + CHR(nAX)
RETURN(cCODE)
ENDFUNC

*****      轉換格式成 DWORD
FUNCTION    DWORD(nCODE)
LOCAL   cCODE,nAX,nBX
nAX      =   WORD(INT(nCODE/65536))
nBX      =   WORD(MOD(nCODE,65536))
cCODE   =   nBX + nAX
RETURN(cCODE)
ENDFUNC

*****      轉換格式成 RGB 24 Bits
FUNCTION    RGBCODE(nR,nG,nB)
LOCAL   cCODE
cCODE   =   CHR(nB) + CHR(nG) + CHR(nR)
RETURN(cCODE)
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件 雅虎訊息通 MSN Messenger
從之前的文章開始顯示:   
發表新主題   回覆主題    VFP 愛用者社區 首頁 -> VFP 討論區 所有的時間均為 台北時間 (GMT + 8 小時)
1頁(共1頁)

 
前往:  
無法 在這個版面發表文章
無法 在這個版面回覆文章
無法 在這個版面編輯文章
無法 在這個版面刪除文章
無法 在這個版面進行投票
無法 在這個版面附加檔案
無法 在這個版面下載檔案


Powered by phpBB © 2001, 2005 phpBB Group
正體中文語系由 phpbb-tw 維護製作