BCB中影像格式pf8bit的問題(首po沒有照格式post) |
答題得分者是:arisaka_matsuri
|
miltonho6721
一般會員 發表:2 回覆:1 積分:0 註冊:2008-01-02 發送簡訊給我 |
[code cpp] Graphics::TBitmap *TheBitmap,*TempBitmap; int Width, Height; Byte *ptr1,*ptr2; //---------------產生一個新的Bitmap元件, //---------------並將指標TempBitmap指向該元件 //---------------此元件之主要目的為儲存翻轉或旋轉後的結果 TempBitmap= new Graphics::TBitmap(); //---------------將指標TheBitmap指向原始影像 TheBitmap= Image1->Picture->Bitmap; TheBitmap->PixelFormat=pf8bit; Width=TheBitmap->Width; Height=TheBitmap->Height; TempBitmap->Assign(TheBitmap); Width=TheBitmap->Width; Height=TheBitmap->Height; for (int y=0;y ptr1=(Byte*) TempBitmap->ScanLine[y]; ptr2=(Byte*) TheBitmap->ScanLine[y]; for(int x=0;x } TheBitmap->Assign(TempBitmap); delete TempBitmap; } [/code] 可以請問一下嗎,各位高手 這是一個翻轉圖片的一支程式, 但是本人實驗了這一支程式有一些小問題想提出來與各位分享 q1: 在 TheBitmap->PixelFormat=pf8bit;這一行程式中 我假設一些condition a>若是不加這一行,但一開始就將要rotate的圖片轉成8bit的圖像檔,是可以水平翻轉的 但是若是這一行加了,直將針對非bit的圖像檔,去做處理,亦是可以翻轉,但是跟第一個針對8bit的圖檔所水平翻轉出來的 檔案是不一樣的樣子…為什麼會這樣呢 b>若是不加這一行,直加針對非8bit的圖像檔,不能轉,他翻轉只有圖片的一半,這是為什麼呢?? c>若是我想翻轉一個非8bit的圖像檔,如何改寫這一支程式呢 d>在寫了這一行的程式時,我亦查過了pf8bit的資料型態,除了這個以要,亦有pf2bit;pf24bit這一類的東西,這如何使用呢…(我是有利用 canvas這個指令來完成這個動作,但是就是想試看看scanline如何完成) q2: 第二個問題我想在這個網頁上有人已經回答了 Byte* ptr1; 變數ptr1是一個指標,資料型態是Byte 因為Scanline回傳的是(void*)型態,所以要轉型成(Byte*)型態,ptr1才能被assign 我不懂的是為什麼要將ptr1宣告成byte 型態… 這就是我的問題,請各位高手幫幫忙囉…bcb新手 不知道這個格式對不對 |
arisaka_matsuri
高階會員 發表:25 回覆:205 積分:231 註冊:2003-10-19 發送簡訊給我 |
要利用Scanline來操作影像資料
必須對影像資料存放在記憶體中的方式非常清楚 TBitmap::PixelFormat的pf8bit跟pf24bit 分別是表示影像資料為每個像素8 bits(1 byte) 或是每個像素需要用24 bits(3 bytes)來表示 一般來說,灰階影像會用8 bits來表示一個像素 而RGB彩色影像會用24 bits來表示一個像素 所以, q2: 宣告成BYTE表示用指標操作時以一個byte為單位 剛好可以操作一個8 bits表示的像素 如果宣告成unsigned long (DWORD),會發生什麼事? 如果宣告成RGBTRIPLE呢? 這些是指標操作的是基本觀念 q1: a. 文句有點混亂,讓人不知所云,有圖嗎? b. 只有翻轉圖片的一半(或是三分之一?)會不會跟指標的型態有關? c. 如果把指標宣告成RGBTRIPLE呢?這跟pf24bit有什麼關聯性? d. 以上的答案應該可以回答這題了 希望你可以在這裡學到東西:) ===================引 用 miltonho6721 文 章=================== 不知道這個格式對不對 |
miltonho6721
一般會員 發表:2 回覆:1 積分:0 註冊:2008-01-02 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |