如何處理24bits圖片 |
答題得分者是:taishyang
|
iam4000
一般會員 發表:12 回覆:5 積分:3 註冊:2008-11-27 發送簡訊給我 |
下面這段程式是要把pixel值為255的點變成紅色的點
可是它只能處理8bits的圖檔,不能處理24bits 請問我要怎麼修改呢??? 註:我不想使用TheBitmap->PixelFormat=pf8bit這種方法,因為圖片會失真 [code cpp] { Graphics::TBitmap *TheBitmap; Byte *ptr; TheBitmap=Image2->Picture->Bitmap; for(int y=0; y < TheBitmap->Height; y ) { ptr=(Byte*)TheBitmap->ScanLine[y]; for(int x=0; x < TheBitmap->Width; x ) { if(ptr[x]==255) Image2->Canvas->Pixels[x][y]=clRed; } } Repaint(); OrgBitmap2->Assign(TheBitmap); }[/code] |
taishyang
站務副站長 發表:377 回覆:5490 積分:4563 註冊:2002-10-08 發送簡訊給我 |
你是要白點變紅點嗎?
Graphics::TBitmap *TheBitmap; Byte *ptr = NULL; TheBitmap=Image2->Picture->Bitmap; for(int y=0; y < TheBitmap->Height; y ){ ptr=(Byte*)TheBitmap->ScanLine[y]; for(int x=0; x < TheBitmap->Width; x ){ if(ptr[x*3]==255 && ptr[x*3 1]==255 && ptr[x*3 2] == 255){ ptr[x*3] = 0; //B ptr[x*3 1] = 0; //G ptr[x*3 2] = 255; //R } } } Repaint(); OrgBitmap2->Assign(TheBitmap); |
iam4000
一般會員 發表:12 回覆:5 積分:3 註冊:2008-11-27 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |