2014-05-13 3 views
2

이미지 옵션을 사용하여 하나의 이미지 위에 다른 이미지를 오버레이하는 데 imagemagick을 사용하고 있습니다. 그러나 오버레이는 배경 이미지보다 크거나 작을 수 있습니다. 즉각 오버레이 이미지의 크기를 조정하여 배경과 일치 시켜서 함께 병합하고 싶습니다. 나는 배경 이미지의 크기를 미리 알고있다. 나는 다음과 같은 일을한다.이미지 생성 오버레이 이미지 크기 조정 합성

exec("convert $img_in (test_images/leak_1.jpg -resize {$w}x{$h} -compose softlight -gravity center -composite $img_out"); 

답변

1

크기 조정 하위 프로세스로 :

exec("convert $img_in test_images/leak_1.jpg -compose softlight -gravity center -composite $img_out"); 

와 나는 같은 것을 할 싶어요. (^을) 지역 플래그를 사용하거나 (see examples)

$dim = "{$w}x{$h}^"; 
$job = "convert \($img_in -resize {$dim} \) test_images/leak_1.jpg " 
    . " -compose softlight -gravity center -composite $img_out"; 
$ok = exec($job); 

배경 이미지가 알려져 있지만, 런타임에 치수를 수집하는 것이 현명 할 및 오류를 구축 할 수 필요한 경우 화면 비율 (!)를 무시 손질.

$dim = exec("convert -ping -format '%wx%h^' test_images/leak_1.jpg info:-"); 
// Do error handle for overlay 
$job = "convert \($img_in -resize {$dim} \) test_images/leak_1.jpg " 
    . " -compose softlight -gravity center -composite $img_out"; 
$ok = exec($job); 
+0

감사합니다. 빠른 질문, 만약 내가 할 수 ... 어떻게 그 오버레이 이미지의 불투명도를 변경할 것이라고 60 %, 조금 밝게 그것을 말 할까? – Chris

+0

마스크의 강도를 조정하기 만하면됩니다. '질문하기'버튼을 사용하고 작업중인 마스크의 예를 제공하십시오. – emcconville