我有一張圖像,我想讓它在頂部變亮,在底部褪色而沒有效果。因此,如果影像一開始是純綠色,那麼最終它看起來會像是從淺綠色到綠色的漸變。
我想我可以做這樣的事情(使用漸層作為蒙版在圖像頂部合成一個白色塊):
convert a.jpg \( +clone -fill white \) \
\( +clone gradient:white-black \) \
-composite out.jpg
或者這個(使用漸層為透明的漸層「著色」圖像)
convert a.jpg \( +clone 'gradient:black-rgba(0,0,0,0)' \) \
-colorize 50% out.jpg
……但兩者都不起作用。
答案1
convert a.jpg \( +clone -fx 'i/w' \) -compose multiply -composite out.jpg
這將獲取圖像的副本並應用-fx
操作員。論壇i/w
遍歷i
= 0 到寬度的每個像素w
,使得左側 ( i == 0
) 的輸出為零(黑色),右側 ( i == w
) 的輸出為 1(白色)。
然後用 進行合成multiply
,使其從左側的純黑色淡化為最右側邊緣的純原始顏色。
您也可以執行以下操作:
convert a.jpg \( +clone \
-fx 'i/w < 0.2 ? 0.2 : (i/w -0.2)*4 + 0.2' \
\) -compose multiply -composite output.jpg
這將使影像左側 20% 的區域變暗 80%,然後從左側 40% 起沒有任何效果,在 20% 到 40% 之間它會線性淡出。