256色調色盤的匹配處理

2021-06-23 08:29:51 字數 953 閱讀 5447

staticunsigned col_diff[3*128]=;

static void bestfit_init()

}uchar lpbestfitcolor(rgb *pal,short r,short g,short b)}}

i++;

} returnbestfit;} 

有了這個函式的功能,問題就解決了。下面我們生成一張rgb->256的查詢表,由於256色髮色數不多。故只用五位**來表示

struct rgb_map

;void lpcreatergbtable(rgb_map *table, rgb *pal, void(*callback)(int pos)) }}

有了這rgb->256的表,什麼問題都解決了。

優化問題:在50%的alpha混色還可以生成一張二維表進行更有效的優化。

struct color_map

;混合時只要 color=color_map.data[color1][color2];這麼簡單。寫成彙編比16位色的50%混合快許多

另外運用color_map還可以生成亮度表,color=light_map.data[source_color][light];如此程式設計也是相

當簡單的。下面是生成亮度查詢表的程式:

voidlpcreatelighttable(color_map *table, rgb *pal, int r, int g, int b,void (*callback)(int pos))

if (callback)

(*callback)(x); }}

下面是一張覆蓋面廣的調色盤,我由《仙劍》中的調色盤加以改動得來,經過長期使用。我覺得大宇真是

經典因為這幾乎是最好的調色盤(起碼我沒有找到比它更具覆蓋性的)一般匹配其他可以達到90%的近似

效果,請將下面**抄到你的程式中:

static rgbdef_pal[256*10]=;

真彩色調色盤

執行開始 紅色綠色 藍色黑色 public class frmmain inherits system.windows.forms.form private sub frmmain load byval sender as system.object,byval e as system.eventa...

WPF實現簡單的顏色調色盤功能

winform有自帶的colordialog功能,wpf可以通過引用system.windows.forms的方式來建立調色盤,在這裡僅使用canvas等控制項來實現簡單的調色盤。效果如下 gif錄製的比較渣,實際效果圖 1 窗體xaml 2 互動邏輯 using system using syst...

關於Image模組的調色盤

參考 首先與cv2讀取為narray格式不同,image讀到的是pil格式,其中讀到的mode有如下 然後我們這裡談一下p 調色盤 模式,該模式下,讀到的是h w大小,每個位置的值是乙個索引,對映到其對應的調色盤上 一般地,調色盤長度為768 256 3,它是乙個列表,內容為256個rgb值不斷迴圈...