2012-08-11 5 views
0

CUI 도구를 작성하여 Photoshop의 HSL 기반 혼합 모드 (색상/색조/채도/광도)를 대체하고 싶습니다. RMagick을 통해 할 수 있다면 더 좋습니다.ImageMagick의 HSL (HSB 또는 HSV 아님)의 합성

ImageMagick은 HSL 색상 공간을 관리 할 수 ​​있지만 ImageMagick의 복합 연산자 인 Colorize/Hue/Saturation/Luminize는 HSB 색상 공간을 기반으로 하드 코딩됩니다.

픽셀 별 처리 코드를 쓰지 않고도 문제가 해결되지 않았습니까? 감사합니다. .

+0

ImageMagick은 이러한 복합 연산자를 HSL (또는 Photoshop에서 사용하는 HSL 변형, 즉 luma/chroma/hue 모델)으로 전환합니다. [link : imagemagick.org] (http://www.imagemagick.org/discourse-server/viewtopic.php?f=2&t=21646) – ippei

답변

0

나는 분리 - 결합 방식을 시도했다. 이야기가 시작되었습니다.

ImageMagick-6.6.9-7에는 rgb < -> hsl 계산과 관련된 정확한 버그가 있습니다. 우분투 12.04 LTS의 패키지 저장소를 제공합니다 ... grrrr (ImageMagick를 자체,> = 6.6.9-9과 r4431 고정 좋은)

가 그럼 난 앉아서 계산을 할 수는 간단한 -fx을 얻었다 표현.

colorize_hsl.fx :

새로운 밝기를 설정하고 색조 및 채도를 유지하는 RGB 기반 식이다
ul = u.lightness; vl = v.lightness; 
bias = (ul < .5 ? ul : 1 - ul)/(vl < .5 ? vl : 1 - vl); 
(v - vl)*bias + ul 

. luminize_hsl을 얻으려면 u 및 v를 교환하십시오.

임시 vars (ul, vl 및 bias)는 모든 채널에서 공통적이지만 이지만 -fx 엔진은 3 회 시도 할 수 있습니다. 충분하지 않습니다.