ImageMagick에서 이미지에 그래디언트를 적용하는 방법은 무엇입니까?


0

나는 이미지를 가지고 있으며 맨 아래에 아무 효과가 없도록 맨 위로 페이드를 가볍게 만들고 싶습니다. 따라서 이미지가 단색 초록색이면 끝에서 연한 녹색에서 녹색으로 그라디언트처럼 보일 것입니다.

나는 (그라디언트를 마스크로 사용하여 이미지 위에 흰색 블록을 복사하는) 이와 비슷한 작업을 할 수 있다고 생각했습니다.

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

...하지만 둘 다 작동하지 않습니다.

답변:


0
convert a.jpg \( +clone -fx 'i/w' \) -compose multiply -composite out.jpg

이렇게하면 이미지 사본을 받아서 -fx 운영자 . 공식 i/w 다음을 위해 모든 픽셀 위로 이동합니다. i = 0 ~ 너비 w 왼쪽에서 ( i == 0 ) 출력은 영 (검정)이고 오른쪽 ( i == w ) 출력은 하나 (흰색)입니다.

다음으로 작성하십시오. 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 % 사이에 선형 적으로 사라집니다.


반경 R의 원과 같은 가면 영역에 어떻게 적용 할 것입니까? 원 밖의 나머지 이미지는 투명하게 유지 하시겠습니까?
μολὼν.λαβέ

당신은 수학과 삼항 연산자로 할 수 있지만 그것은 매우 복잡해질 것입니다. Imagemagick은 아마도 원을 그리다 . 그래서 내부에서 사용하십시오. \( ... \) 비트를 사용하여 원을 만듭니다. 이 사건은 정말로 새로운 질문이되어야합니다.
artfulrobot
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.