1
如何使用ImageMagick將2.png的HSL亮度通道替換爲2.png的HSL亮度通道?我幾乎無法理解convert
語法。使用convert將亮度通道替換爲另一個亮度通道
如何使用ImageMagick將2.png的HSL亮度通道替換爲2.png的HSL亮度通道?我幾乎無法理解convert
語法。使用convert將亮度通道替換爲另一個亮度通道
至少有兩種方法可以做到這一點...
首先和最慢的是使用-fx
和該命令將是這樣的:
convert 1.png 2.png -colorspace HSL -channel L -fx "v" -colorspace RGB result.png
將加載兩個圖像,1 .png和2.png,並將它們都轉換爲HSL顏色空間。然後,它將通過使用圖像v
(這是ImageMagick如何引用序列中的第二個圖像 - 第一個是u
)的值生成新的Lighness通道。然後它將結果圖像轉換回RGB色彩空間。
第二種方法是這樣的,並會更快,尤其是在較大的圖像:
convert 1.png 2.png \
-colorspace HSL \
-separate \
-delete 2-4 \
-combine \
-set colorspace HSL \
-colorspace rgb \
output.png
基本上,它會加載兩個圖像,都轉換爲HSL,並分層。層0將是1.png的色相,層2將是1.png的飽和度,層3將是1.png的亮度。層3-5將是2.png的色調,飽和度和亮度。然後,我們刪除刪除1.png的亮度和2.png的色相飽和度&然後三個通道組合成一個新的形象,將其轉換回RGB並將其保存爲result.png
爲了測試它,我創建了2張虛擬輸入相似圖片這樣的:
convert -size 256x256 \
xc:red xc:lime +append \
\(xc:blue xc:black +append \) \
-append 1.png
這
convert -size 512x512 gradient:black-white 2.png
然後我申請我的第一個技術,即
convert 1.png 2.png -colorspace HSL -channel L -fx "v" -colorspace RGB result.png
,我得到這個
第二種方法給出了相同的結果。