2017-01-31 102 views
0

我試圖設置任何圖像從任何顏色空間到白色的邊框顏色。現在我做這樣的事情,MagickImage創建相同的顏色,而不考慮顏色空間

if (image.ColorSpace == ColorSpace.CMYK) 
    image.BorderColor = new MagickColor(0, 0, 0, 0, 0); // Set border color as white (CMYK) 
else 
    image.BorderColor = new MagickColor("#FFFFFF"); // Set border color as white (RGB) 

但這似乎並不全面,因爲在這種情況下,我們需要看看其他的色彩空間和看到他們也適用於這個。

我遇到了一個問題,其中一個圖像的顏色空間爲Lab,上面的代碼產生紅色邊框。所以我正在尋找一個簡單的方法來做到這一點。

任何幫助,將不勝感激。

+1

爲什麼要麻煩?只需使用X11顏色名稱,讓IM即可解決此問題。 '新的MagickColor(「白色」)' – emcconville

+0

工作就像一個魅力。太感謝了。 – M22an

+0

樂於助人。請將您的解決方案作爲答案發布並接受。它會幫助未來的讀者。 – emcconville

回答

0

感謝@emcconville,我能夠得到一個更簡單的解決方案。

的MagickColor類接受X11顏色名稱作爲參數,所以我們可以使用

image.BorderColor = new MagickColor("WHITE"); 

此設置邊框顏色爲白色,不論的ColorSpace的實現相同。

對於那些想知道X11顏色名稱是什麼的人,https://en.wikipedia.org/wiki/X11_color_names

相關問題