全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:2302
推到 Plurk!
推到 Facebook!

BCB 有可能寫出 媲美影像軟體的 resize 功能嗎?

尚未結案
achag_tw
一般會員


發表:7
回覆:2
積分:1
註冊:2004-08-20

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-09-03 11:59:44 IP:203.70.xxx.xxx 未訂閱
小弟最近在測一個程式 用到了StretchDraw() 在改變圖片的大小 把原本的2250X1950圖片 縮成400X300 可是縮出來的品質沒有很好說! >.< 不曉得各位前輩能不能給我點意見 小弟的BCB 是用5.0 跟6.0會有差嗎? 感謝
richtop
資深會員


發表:122
回覆:646
積分:468
註冊:2003-06-10

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-09-03 14:55:34 IP:211.76.xxx.xxx 未訂閱
achag_tw 您好:    
引言: 小弟最近在測一個程式 用到了StretchDraw() 在改變圖片的大小 把原本的2250X1950圖片 縮成400X300 可是縮出來的品質沒有很好說! >.< 不曉得各位前輩能不能給我點意見 小弟的BCB 是用5.0 跟6.0會有差嗎? 若依您上述的需求來看,並無版本的差異。 感謝
縮圖的意思就是把原先圖上的一塊,在新圖上以一個點來表示。 曾在書上("Delphi於繪圖與圖形處理上的實習應用",中村拓男 著,張士新 譯,博碩出版)學到可以在原先圖上的一塊上取得其平均值,再將結果填入新圖上對應的點。這方法的好處是:能對線的訊息有較好的保留。 底下是我之前在相關程式中設計的縮圖函式,供您參考;另外因使用到ScanLine所以必須將.jpg轉成.bmp才能使用,轉換方法亦在程式中,您可更改以符合需求。 < class="code">//--------------------------------------------------------------------------- void shrink(Graphics::TBitmap *bmp, float sx, float sy) { int x, y, px, py, bkx, bky, h, w; int mWidth, mHeight; unsigned long index; float value; BYTE *ptr, *pImg; Graphics::TBitmap *mBmp = new Graphics::TBitmap(); mBmp->Assign(bmp); // 備份原圖 mBmp->PixelFormat = pf24bit; w = mBmp->Width * sx; // 計算縮圖尺寸 h = mBmp->Height* sy; bmp->Width = w; bmp->Height = h; bmp->PixelFormat = pf24bit; mWidth = mBmp->Width; mHeight = mBmp->Height; sx = 1.0/sx; sy = 1.0/sy; unsigned long idxImg=0L; int gray[3]; for (py=0; pyScanLine[py]; for (px=0; pxScanLine[y bky]; for (bkx=0; bkxPicture->Bitmap, sx, sy); } //--------------------------------------------------------------------------- void __fastcall TForm1::Jpeg2BitmapClick(TObject *Sender) { Graphics::TBitmap *bmp = new Graphics::TBitmap(); bmp->Width = Image1->Picture->Width; bmp->Height = Image1->Picture->Height; bmp->Canvas->Draw(0, 0, Image1->Picture->Graphic); Image1->Picture->Assign(bmp); delete bmp; } //--------------------------------------------------------------------------- RichTop 敬上 =====***** 把數學當工具,可以解決問題;將數學變能力,能夠發現並解決問題! =====##### 發表人 - richtop 於 2004/09/03 15:02:18
achag_tw
一般會員


發表:7
回覆:2
積分:1
註冊:2004-08-20

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-09-03 18:48:50 IP:203.70.xxx.xxx 未訂閱
再請問一下 我剛有回頭爬文. 這個寫法算是 平滑法嗎? 另外再次感謝 大大的回覆 小弟又再向前邁進了一步了..^^
richtop
資深會員


發表:122
回覆:646
積分:468
註冊:2003-06-10

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-09-03 21:37:57 IP:211.76.xxx.xxx 未訂閱
achag_tw 您好: 基本上它是求平均值,即相加之後再除以該區塊的點數,所以可以說是取其低頻的結果,因此邊緣(高頻部分)會有點模糊。 而您所謂的平滑法,是不是指當影像放大時,增加的點以高次曲線計算其顏色的近似值。 由於圖形是縮小的,所以並不需要增加新點,反而要刪去若干點,也就是說可以不用引進平滑近似演算的規則。 RichTop 敬上 =====***** 把數學當工具,可以解決問題;將數學變能力,能夠發現並解決問題! =====#####
系統時間:2024-07-08 11:14:22
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!