2015-05-25 90 views

回答

2

至少有兩種方法可以做到這一點...

首先和最慢的是使用-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 

enter image description here

convert -size 512x512 gradient:black-white 2.png 

enter image description here

然後我申請我的第一個技術,即

convert 1.png 2.png -colorspace HSL -channel L -fx "v" -colorspace RGB result.png 

,我得到這個

enter image description here

第二種方法給出了相同的結果。

相關問題