請問一個有關圖檔的問題............. |
尚未結案
|
kevinhue
一般會員 發表:23 回覆:42 積分:13 註冊:2003-05-06 發送簡訊給我 |
|
taishyang
站務副站長 發表:377 回覆:5490 積分:4563 註冊:2002-10-08 發送簡訊給我 |
|
RaynorPao
版主 發表:139 回覆:3622 積分:7025 註冊:2002-08-12 發送簡訊給我 |
引言: 請問各位大大: 我想做一個讀取任何大小的圖檔,然後將圖檔的長跟寬都轉換成我想要的大 大小,請問各位大大要怎麼做..........例如:讀取640*480存成320*320的 ,能給提示好嗎??kevinhue 你好: 請參考以下的做法 < class="code"> void __fastcall TForm1::Button1Click(TObject *Sender) { Graphics::TBitmap *bmpSrc=new Graphics::TBitmap; Graphics::TBitmap *bmpDst=new Graphics::TBitmap; bmpSrc->LoadFromFile("640x480.bmp"); bmpDst->Width=320; bmpDst->Height=320; bmpDst->Canvas->CopyRect(Rect(0, 0, bmpDst->Width, bmpDst->Height), bmpSrc->Canvas, Rect(0, 0, bmpSrc->Width, bmpSrc->Height)); bmpDst->SaveToFile("320x320.bmp"); delete bmpSrc; delete bmpDst; } 備註: 因為你的原圖是 640x480 (4:3),變成 320x320 (1:1),因此做出來的結果,會 有寬度被壓縮的感覺,因此還是建議你如果想要放大或縮小的話,長度跟寬度還 是維持原來的長寬比例會比較好(例如: 放大為 800x600 或縮小為 400x300) --
------
-- 若您已經得到滿意的答覆,請適時結案!! -- -- 欲知前世因,今生受者是;欲知來世果,今生做者是 -- -- 一切有為法,如夢幻泡影,如露亦如電,應作如是觀 -- |
JerryKuo
版主 發表:42 回覆:571 積分:322 註冊:2003-03-10 發送簡訊給我 |
引言: kevinhue 你好: 請參考以下的做法 < class="code"> void __fastcall TForm1::Button1Click(TObject *Sender) { Graphics::TBitmap *bmpSrc=new Graphics::TBitmap; Graphics::TBitmap *bmpDst=new Graphics::TBitmap; bmpSrc->LoadFromFile("640x480.bmp"); bmpDst->Width=320; bmpDst->Height=320; bmpDst->Canvas->CopyRect(Rect(0, 0, bmpDst->Width, bmpDst->Height), bmpSrc->Canvas, Rect(0, 0, bmpSrc->Width, bmpSrc->Height)); bmpDst->SaveToFile("320x320.bmp"); delete bmpSrc; delete bmpDst; } 備註: 因為你的原圖是 640x480 (4:3),變成 320x320 (1:1),因此做出來的結果,會 有寬度被壓縮的感覺,因此還是建議你如果想要放大或縮小的話,長度跟寬度還 是維持原來的長寬比例會比較好(例如: 放大為 800x600 或縮小為 400x300) -- >>< face="Verdana, Arial, Helvetica"> 各位好: 原來也可以這樣用^^ 本來想要用內插法去逼近,而且計算又是一堆加減乘除,用法很麻煩,所以 一直沒有把內插法回應在版上。 謝謝囉,又學到一個方便又好用的方法 |
taishyang
站務副站長 發表:377 回覆:5490 積分:4563 註冊:2002-10-08 發送簡訊給我 |
|
kikikoko
一般會員 發表:4 回覆:8 積分:2 註冊:2003-05-16 發送簡訊給我 |
|
RaynorPao
版主 發表:139 回覆:3622 積分:7025 註冊:2002-08-12 發送簡訊給我 |
引言: 大家好 很高興又學到了一種新的方法,最近剛好需要用到, 可是我試了縮小後的圖卻出現紅色的雜訊。 不曉得是為什麼耶!有沒有那位前輩可以幫忙,謝謝!kikikoko 你好: 把程式碼改成以下這樣,應該就可以了 < class="code"> void __fastcall TForm1::Button1Click(TObject *Sender) { Graphics::TBitmap *bmpSrc=new Graphics::TBitmap; Graphics::TBitmap *bmpDst=new Graphics::TBitmap; bmpSrc->LoadFromFile("dog-big.bmp"); bmpDst->Width=bmpSrc->Width/2; bmpDst->Height=bmpSrc->Height/2; SetStretchBltMode(bmpDst->Canvas->Handle, STRETCH_HALFTONE); bmpDst->Canvas->CopyMode=cmSrcCopy; bmpDst->Canvas->CopyRect(Rect(0, 0, bmpDst->Width, bmpDst->Height), bmpSrc->Canvas, Rect(0, 0, bmpSrc->Width, bmpSrc->Height)); bmpDst->SaveToFile("dog-small.bmp"); delete bmpSrc; delete bmpDst; } -- Enjoy Researching & Developing --
------
-- 若您已經得到滿意的答覆,請適時結案!! -- -- 欲知前世因,今生受者是;欲知來世果,今生做者是 -- -- 一切有為法,如夢幻泡影,如露亦如電,應作如是觀 -- |
kikikoko
一般會員 發表:4 回覆:8 積分:2 註冊:2003-05-16 發送簡訊給我 |
|
JerryKuo
版主 發表:42 回覆:571 積分:322 註冊:2003-03-10 發送簡訊給我 |
|
kevinhue
一般會員 發表:23 回覆:42 積分:13 註冊:2003-05-06 發送簡訊給我 |
|
RaynorPao
版主 發表:139 回覆:3622 積分:7025 註冊:2002-08-12 發送簡訊給我 |
引言: 親愛的RaynorPao大哥: 可以在請教您一個問題嗎,要加那個參數可以將圖轉成黑白的圖...... Kevinhue kevinhue 你好: (1)請問你說的「黑白」是指什麼?? 是指只有「黑白」兩色的圖,還是指一般的 灰階(例如: 256 色灰階)呢?? (2)以下範例中有一個將 24 bits 全彩的圖轉成 8 bits 灰階圖的範例 http://delphi.ktop.com.tw/topic.php?topic_id=26438 (3)有關灰階、黑白影像方面的應用,你可以利用本站搜尋的功能,就可以找到 很多相關的文章喔-- Enjoy Researching & Developing --
------
-- 若您已經得到滿意的答覆,請適時結案!! -- -- 欲知前世因,今生受者是;欲知來世果,今生做者是 -- -- 一切有為法,如夢幻泡影,如露亦如電,應作如是觀 -- |
kevinhue
一般會員 發表:23 回覆:42 積分:13 註冊:2003-05-06 發送簡訊給我 |
|
RaynorPao
版主 發表:139 回覆:3622 積分:7025 註冊:2002-08-12 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |