2010-04-26 8 views
2

Image Magick을 사용하여 이미지를 회전하고 있습니다 (PHP-GD 스케일로 이미지가 축소됨).배경색을 투명하게 변경하는 방법은 무엇입니까?

그러나 배경이 검은 색으로 남습니다. 또한 이미지가 전혀 좋지 않습니다 (PHP-GD보다 좋음).

제안 사항?

@oren는 여기 을 @razzed 코드

 
$patchImageS  = 'kapeels.png'; // the image to be patched over the final bg 
$imagick   = new Imagick();  $imagick->readImage($patchImageS); 
$imagick->rotateImage(new ImagickPixel(), 355); 
$imagick->transparentPaintImage('black', 0.0,0,false); 
header('content-type:image/png'); 
$fp=fopen('tts.png','w+'); 
fwrite($fp,$imagick->getImage()); 
fclose($fp); 

입니다 그리고 이것은 내가 회전하려고 이미지의 - 응답들에 대한

http://www.lilpirate.net/kapeels.png

감사합니다 :-)

+0

이미지는 단색입니까? –

+0

샘플 코드, 명령 줄 또는 원본 이미지 URL은 어떨까요? – razzed

+0

@razzed - 질문이 업데이트되었습니다. 봐. @oren - nope – kapeels

답변

1

Imagick 객체를 생성 한 후, 그 인자로 배경을 투명하게 설정합니다 :

$imagick->newimage($width, $height, "rgba(0, 0, 0, 0)"); 
1

이 같은 이미지를 회전 :

$im = new Imagick('kapeels.png'); 
$im->rotateImage(new ImagickPixel('none'), 7); 
$im->trimImage (0); 
$im->resetImagePage('216x174+0+0'); 
$im->writeImage('rotateImage.png'); 
$im->destroy(); 

당신은 다시 캔버스에 이미지를 중앙에 THR repage 필요하지만있는 Imagemagick 이용하지 않는 당신이 값을해야하는 이유를 알고 싶습니다. 내가 자동으로 값을 설정하는 것을 생각할 수있는 유일한 방법은 트림 후 이미지 크기를 얻고 재설정에서 사용하는 것입니다.

내가 제안 할 수있는 모든 것들은 큰 이미지로 시작하고 회전 후 줄이고 도움이되는지 확인합니다. 아마도 약간의 예리함을 사용할 것입니다. 하지만 선이 너무 가깝고 가깝기 때문에별로 도움이되지 않을 것이라고 생각합니다.

관련 문제