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值不斷迴圈...