김프에서 두 이미지의 투명 이미지로 차이를 얻으십시오


21

나는 두 개의 이미지가 A하고 B있는 많은 지역에서 유사하다.

나는 이미지를 만들려면 C그 정도

B = C on top of A

여기서 C가능한 투명해야한다. on top of법선 레이어 중첩입니다.

그래서 C차이의 일종 AB. 경우 AB동일하고 C완전히 투명합니다. AB매우 다른 경우 와 C거의 동일합니다 B.


ImageMagick을 사용하는 Stack Overflow에 대한이 질문에 대한 훌륭한 답변이 있습니다 : stackoverflow.com/questions/5132749/…
AB

답변:


23

"차이"레이어 모드를 사용하여 레이어 마스크를 만들고 다음과 같이 B에 적용 할 수 있습니다.

  1. 두 이미지를 레이어로 열고, 아래쪽에 A, 위쪽에 B
  2. 레이어의 대화 상자에서 B의 레이어 모드를 "차이"로 표시하십시오. 이제 이미지가 대부분 검은 색임을 알 수 있습니다. 색상 영역이 다른 영역을 표시합니다. 그러나 이러한 색상은 원하는대로 B의 색상과 일치하지 않습니다.
  3. B에 계산 된 효과의 사본을 얻기 위해 편집-> 복사본 표시
  4. 레이어 B를 복제하고 모드를 "정상"으로 다시 변경합니다 (이 레이어 C라고하겠습니다).
  5. 레이어 메뉴에서 C에 레이어 마스크를 추가합니다 (레이어-> 마스크-> 레이어 마스크 추가).
  6. 마스크를 선택한 상태에서 3 단계에서 복사 한 내용을 붙여 넣습니다 (편집-> 붙여 넣기).
  7. 붙여 넣은 내용을 레이어 마스크에 고정합니다 (레이어-> 앵커 레이어).

레이어 A와 B를 보이지 않게 만들고 원하는 것과 매우 가까워 야합니다. 레이어 마스크에 대한 추가 작업 (색상-> 곡선 사용을 권장 함)은 레이어 C의 영역의 불투명도 / 투명도를 조정할 수 있습니다.

업데이트 최근에 OP가 프로그래밍 방식으로 작업을 수행하고 싶었던 Stackoverflow에서 이와 비슷한 질문 에 대답 했습니다 (Python + Python-imaging-library 사용)-해당 질문에 전체 프로그램을 게시했으며 모든 사람에게 도움이 될 수 있습니다 이 답변에 관심이 있습니다.


On the layer's dialog, mark B's layer mode as "difference". 죄송합니다 레이어 도구 창을보고 있는데 레이어 B를 마우스 오른쪽 버튼으로 클릭하면처럼 보이는 것이 보이지 않습니다 layer mode. 내가 찾은 가장 가까운 것은 Add Layer Mask이지만, 그것이 당신이 말하는 것이라고 생각하지 않습니다. v2.8.22 사용
Adrian

레이어를 선택한 상태에서 마우스 오른쪽 버튼 메뉴가 아닌 레이어 대화 상자 상단의 드롭 다운에서 레이어 모드를 선택할 수 있습니다.
jsbueno

6 단계에서 약간의 혼동이 있거나 문제가 있습니다. "C 마스크"를 선택한 경우에도 내용을 새 레이어에 붙여 넣은 것으로 보입니다. 원래 위치에서-그것이 보이는 방식입니까?
코드 자키

목적지에 고정 할 때까지 "부동 선택"입니다 (Ctrl-H). 붙여 넣기 (Ctrl-V) 할 때 마스크가 활성화되어 있는지 확인하십시오. 그렇지 않으면 앵커가 다른 곳으로 이동할 수 있습니다.
xenoid

5

간단한 방법이 있습니다 :

이미지를 두 개의 레이어로 열고 필터-애니메이션-최적화 (차이)를 실행하면 맨 아래 레이어와 그 위에 다른 레이어로 구성된 동일한 결과 이미지가 표시됩니다.

필터가 제거하기 때문에 부분 투명도가있는 경우에만 문제가 발생합니다.
이 경우에 찾은 해결 방법은 다음과 같습니다.

  • 두 레이어 모두에서 알파 채널 제거 (작업은 상황에 맞는 메뉴에 있음)

이미지는 흰색 배경을 수신하지만 걱정하지 마십시오. 나중에 실행 취소합니다.

  • 필터-애니메이션-최적화 (차이)

이제 부분 투명도에 흰색 배경의 차이 레이어가 있지만 픽셀을 투명하게 만들어야하므로 diff의 모양을 취하고이 모양의 이미지를 원래의 최상위 레이어에서 복사합니다. 새로 생성 된 diff layer가 선택되어 있는지 확인하고 계속하십시오.

  • 레이어-이미지 크기로 레이어
  • 편집-복사 (Ctrl + C)
  • 원본 이미지로 돌아 가기
  • 레이어에 투명도를 되돌리려면 실행 취소, 실행 취소
  • 편집-붙여 넣기-새 레이어
  • 붙여 넣은 diff 레이어의 선택 영역에 알파 (컨텍스트 메뉴)
  • 붙여 넣은 diff 레이어 삭제
  • 최상위 레이어가 선택되어 있는지 확인하고 그 레이어에서 복사 (Ctrl + C)
  • 이제 차이점이 있습니다. 붙여 넣기 (Ctrl + V)하여 새 레이어를 만듭니다.

물론 마법이 발생하지 않으며 부분적으로 투명한 상단 레이어는 색상을 변경하거나 하단 레이어의 투명도를 낮추지 않으므로 상단 레이어의 변경된 픽셀이 하단 레이어를 덮는 확장의 경우에만 해당됩니다.


PS jsbueno의 방법이 저에게 효과적이지 않았습니다.


1

김프에는 "컬러 지우기"라는 브러시 모드가 있습니다. 색상 X로 채색 된이 브러시를 한정된 픽셀 P1에 적용하면 알파 채널이 낮아진 픽셀 P2가 생성됩니다. 즉, 일반 모드에서 P2를 색상 X가있는 픽셀과 혼합하면 픽셀 P1이됩니다. "Color to Alpha"액션을 사용하여 선택한 영역 또는 전체 이미지에 동일한 효과를 적용 할 수 있습니다 .

브러시 모드는 "복제 도구"에도 적용 할 수 있습니다. 이 경우 배경 이미지 A의 픽셀에서 색상을 가져와 결과 이미지 B의 해당 픽셀에 적용 할 수 있습니다. 남은 이미지는 원하는 이미지 C입니다.

이미지 C 작성에 대한 세부 사항은 다음과 같습니다.

  1. 이미지 A와 B를 레이어로 놓으십시오 (B 아래 A).
  2. 이미지 B를 복제하고 C라고 부릅니다. A와 B 사이에 놓으십시오. 이미지 B를 숨기십시오.
  3. "복제 도구"를 선택하십시오. "도구 옵션"창에서 다음 옵션을 설정하십시오. 모드 : "색상 지우기"; 브러시 : 날카로운 둥근 브러시 ( "경도 100")를 사용하십시오. 크기 : 브러시를 더 크게 만들어 모든 이미지를 한 번에 쉽게 페인트하십시오.
  4. 왼쪽 상단 픽셀에서 레이어와 CTRL +를 선택하여 복제 및 위치를 기억할 위치를 선택합니다 (100 % 확대 / 축소는 (1,1), 50 %, (2,2) 등).
  5. 이제 레이어 C를 선택하고 왼쪽 상단에서 페인팅을 시작하고 브러시를 들지 않고 모든 이미지를 덮습니다. 이미지가 바뀌지 않는 것처럼 보일 수 있습니다. 그러나 레이어 A를 숨기면 레이어 C에 원하는 이미지가 포함되어 있음을 알 수 있습니다.
  6. 결과 확인 : 레이어 A와 레이어 C를 표시합니다. 레이어 B 가시성을 토글하여 이미지가 동일하게 보이도록합니다. 레이어 B에 대해 모드 "차이"를 선택할 수도 있습니다.이 경우 절대적으로 검은 색 이미지가 표시됩니다.

참고 :이 방법은 배경 이미지가 불투명 한 경우 설명 된대로 작동합니다. 배경 이미지의 투명한 부분에서 A 위에 C를 혼합하면 이미지 B와 다르게 보입니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.