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

影像格式之轉換

尚未結案
glenn
一般會員


發表:24
回覆:21
積分:9
註冊:2004-03-08

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-04-20 10:28:09 IP:140.124.xxx.xxx 未訂閱
各位大大: 小弟現於Image上有一24bit之灰階影像, 現在想要將他儲存為256色之灰階影像, 那小弟要怎麼做
taishyang
站務副站長


發表:377
回覆:5490
積分:4563
註冊:2002-10-08

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-04-20 10:47:39 IP:210.68.xxx.xxx 未訂閱
您好: 請多多利用[搜尋]功能 Exhttp://delphi.ktop.com.tw/topic.php?topic_id=55371 順心
glenn
一般會員


發表:24
回覆:21
積分:9
註冊:2004-03-08

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-04-20 13:08:35 IP:140.124.xxx.xxx 未訂閱
可是好奇怪, 我本來目的是於一個512*512的256色的灰階影像, 從中複製一塊300*300的區域的影像, 但將複製的這一影像儲存後, 這一個300*300的影像則變為了32bit 的影像, 為什麼呢? 要如何讓它變為256色的灰階影像呢?
glenn
一般會員


發表:24
回覆:21
積分:9
註冊:2004-03-08

發送簡訊給我
#4 引用回覆 回覆 發表時間:2005-04-20 13:13:58 IP:140.124.xxx.xxx 未訂閱
下面是小弟的程式碼: 複製的程式碼: void __fastcall TForm1::Copy() { Graphics::TBitmap *TheBitmap, *TempBitmap; int Width, Height; TRect SrcRect, DestRect; //TheBitmap=new Graphics::TBitmap(); //TheBitmap->PixelFormat=pf8bit; //------讓theBitmap為指向將被複製之影像的指標 TheBitmap=Image1->Picture->Bitmap; //-----去除已畫在此影像上擬被複製區域的外框 TheBitmap->Canvas->Draw(0,0,OrgBitmap); //--------------------------------------------------------------------------- //-----將擬被複製區域傳至Clipboard------------------------------------------- //--------------------------------------------------------------------------- //-----產生一個新Bitmap元件並讓TempBitmap指向此元件 TempBitmap=new Graphics::TBitmap(); //計算被複製區域寬及高 Width=abs(EndX-StartX); Height=abs(EndY-StartY); //-----設定新產生的Bitmap元件為此被複製區域 TempBitmap->Width=Width; TempBitmap->Height=Height; //TempBitmap->PixelFormat=pf8bit; TempBitmap->Canvas->CopyMode=cmSrcCopy; SrcRect=Rect(StartX, StartY, EndX, EndY); DestRect=Rect(0, 0, Width, Height); TempBitmap->Canvas->CopyRect(DestRect, TheBitmap->Canvas, SrcRect); //-----將此新原件的內容複製至Clipboard Clipboard()->Assign(TempBitmap); } 儲存的程式碼為: Graphics::TBitmap *TheBitmap; TheBitmap=new Graphics::TBitmap(); //TheBitmap->PixelFormat=pf8bit; TheBitmap->Assign(Clipboard()); //-----讓TheBitmap為指向將被貼上方塊之目的影像的指標 //TheBitmap=Image2->Picture->Bitmap; TheBitmap->SaveToFile(s);
taishyang
站務副站長


發表:377
回覆:5490
積分:4563
註冊:2002-10-08

發送簡訊給我
#5 引用回覆 回覆 發表時間:2005-04-20 13:32:33 IP:210.68.xxx.xxx 未訂閱
您好:
引言:可是好奇怪, 我本來目的是於一個512*512的256色的灰階影像, 從中複製一塊300*300的區域的影像, 但將複製的這一影像儲存後, 這一個300*300的影像則變為了32bit 的影像, 為什麼呢? 因該是您螢幕的設定所造成的 要如何讓它變為256色的灰階影像呢? 方式就如之前所給的連結所說的是一樣的,不知道您試過了嗎?
P.S: PO程式碼的方式請參考版規說明,煩請修改謝謝您的配合 http://delphi.ktop.com.tw/topic.php?TOPIC_ID=47262 順心
系統時間:2024-05-12 11:03:57
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!