프로그래밍 방식으로 Photoshop에서는 HUE 블렌드가 어떻게 작동합니까?

StackOverflow https://stackoverflow.com//questions/9643404

  •  10-12-2019
  •  | 
  •  

문제

Photoshop의 블렌딩 모드를 "색조"로 설정할 수 있습니다. 해당 레이어가 예를 들어 청색으로 채워지면 아래의 레이어를 가져 와서 비닐 컬러가 아닌 곳이있는 곳이면 모두 파란색으로 만듭니다.

나는 그것이 실제로 무엇을하고 있는지 궁금합니다. 픽셀 AARRGGBB가있는 백그라운드 레이어가 있고 맨 위에있는 레이어가 "HUE"를 블렌드 모드로 설정하고 해당 레이어에 픽셀 AARRGGBB가 있으며,이 두 값은 우리가 볼 수있는 결과를 제공하기 위해 어떻게 결합되어 있는가?

rrggbb를 아래 레이어에서 떨어 뜨리지 않습니다. 그것이 흰색과 검은 색으로 컬러 일 뿐이라면. 또한 색상 변화를 허용하지 않습니다.

백그라운드 픽셀이 0xFF00FF00이고 해당 색상 레이어 픽셀이 0xFF0000FF 인 경우 FF 파란색이 FF 녹색을 대체하기 때문에 최종 결과가 0xFF0000FF 일 것임을 가정합니다. 그러나 배경 픽셀이 0x55112233이고 색상 레이어 픽셀이 0xFF0000FF 인 경우 파란색의 그늘이 어떻게 나타나는가?

내가 묻는 이유는 다양한 이미지를 가져 와서 프로그램의 색조를 내 앱에서 프로그래밍 방식으로 변경하고 싶습니다. 동일한 이미지의 8 개의 다른 버전을 다른 색상으로 저장하는 대신 하나의 이미지를 저장하고 필요에 따라 색을 색칠하고 싶습니다.

도움이 되었습니까?

해결책

RGB를 HSV로 변환하는 알고리즘을 찾았습니다. http://www.cs.rit.edu/~ncs/color/t_convert..html

해당 페이지의 맨 아래에는 Java Color 객체가 RGB와 HSV 사이를 변환하는 방법이 이미 있으므로 방금 사용했습니다.

다른 팁

JavaScript / Canvas에서 혼합 모드를 복제하는 방법을 연구 해왔으나 "Colorize"필터 / 블렌드 모드 만 제공했습니다. (아래의 예)

colorize 알고리즘 :

  1. RGB에서 HSL로 색상을 변환합니다.
  2. 가치를 원하는 것으로 변경하십시오 (내 경우 172˚ 또는 0.477);
  3. 업데이트 HSL을 RGB 로 되돌립니다.

    참고 : 이것은 바탕 화면에서 괜찮지 만 스마트 폰에서 눈에 띄게 느리게 느립니다.

    이 세 가지 이미지를 비교하여 차이를 볼 수 있습니다. 원본 :

    원본 이미지

    colorize :

    불꽃 놀이 "블렌드 색조"알고리즘 (Photoshop '과 동일하다고 생각합니다) :

    불꽃 놀이 "블렌드 색조"알고리즘

    colorize 필터는 좋은 대체물 일 수 있습니다.

    RGB / HSL 변환 질문

    Wikipedia의 색조 / 채도 및 HSL

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top