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

關於24bit color降16bit(5:5:5) color修補處理

 
abraxas
一般會員


發表:8
回覆:1
積分:1
註冊:2005-03-28

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-10-17 02:50:15 IP:220.129.xxx.xxx 未訂閱
true color到high color,大部份是還ok,但是遇到某些漸層處就特別難看.    底下是我的方法,有自己的一些想法(一下子也說不清楚),亂兜出來的, 好像還真的有效,用我的方法,一方面轉換後,顏色特性有變動,而且顯 然需要增加一下彩度.對比和亮度(我只會增加亮度和對比,彩度 不知道怎樣增加,而且方法好像不是很正確,我自摸亂看亂學的... 我的增加亮度和對比的方法,好像跟別的軟體差很多...)    部份程式碼.
for(int x=0 ;xPicture->Bitmap->Width; x++)
for(int y=0 ;yPicture->Bitmap->Height; y++)
{
r = GetRValue(Image1->Canvas->Pixels[x][y]);
g = GetGValue(Image1->Canvas->Pixels[x][y]);
b = GetBValue(Image1->Canvas->Pixels[x][y]);    if(CheckBox1->Checked == true)
v=1.8;
else
v=1;
/*對比調整 start*/
if( (r * v) < 255) r *= v; else r=255;
if( (g * v) < 255) g *= v; else g=255;
if( (b * v) < 255) b *= v; else b=255;
/*對比調整 end*/    /*24->16bit階量化start*/
r /= 8; g /= 8; b /=8;
r *= 8; g *= 8; b *=8;
/*24->16bit階量化end*/    if(CheckBox1->Checked == true)
v=0.6;
else
v=1;
/*對比調整 start*/
if( (r * v) < 255) r *= v; else r=255;
if( (g * v) < 255) g *= v; else g=255;
if( (b * v) < 255) b *= v; else b=255;
/*對比調整 end*/    /*增加亮度start*/
if(CheckBox1->Checked == true)
bright=20;
else
bright=0;
if( (r + bright) < 255) r += bright; else r=255;
if( (g + bright) < 255) g += bright; else g=255;
if( (b + bright) < 255) b += bright; else b=255;
/*增加亮度 end*/    tmp_image->Canvas->Pixels[x][y]= (TColor)RGB(r,g,b);
}
 
不知道對此,有經驗的老鳥有什麼建議否? 與其用dither,我想不如就把畫面的特性改變, 讓漸層看起來比較不明顯之類的... 發表人 - abraxas 於 2005/10/17 03:04:04
系統時間:2024-04-28 8:24:25
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!