2012-11-14 2 views
2

웹캠이있어서 이미지에 몇 가지 특수 효과를 추가하고 싶지만, 앨리어스 제거는 이상하게 작동합니다. 내가 설명하려고합니다 :php imagick annotation 안티 앨리어싱

을 나는이 같은 이미지가 있습니다 Source image

그럼 내가 추가 반투명 사각형을 그리고 그 위에 텍스트를 넣어 :

 // add background black rectangle 
     $draw->setFillColor('black'); 
     $draw->setFillOpacity(0.5); 
     $draw->rectangle(0, 10, $cam['width'], 70); // Draw the rectangle 
     // add lead text 
     $draw->setFont('ARIALBD.TTF'); 
     $draw->setFontSize(14); 
     $draw->setFillColor('white'); 
     $draw->annotation(20, 35, $cam['text']); 
     // add timestamp 
     $draw->setFont('ARIAL.TTF'); 
     $draw->setFontSize(12); 
     $draw->setFillColor(new ImagickPixel('#f3ac01')); 
     $draw->annotation(20, 50, date("Y-m-d H:i:s")); 
     $img->drawImage($draw); 

을 그리고 이런 식으로 뭔가를 얻을 :

Adding text

허,하지만 타임 스탬프가 ulgy 보이는 (분/초 봐). 안티 앨리어싱 해제하려고 :

$draw->setTextAntialias(false); 

을하고 지금은 (시간보고) 여전히 추한 보이지만, 지금은이 날카로운 모서리 : 나는 스마트 안티 앨리어싱, 등으로 결과를 얻을 수있는 방법

antialiasing turned off

이 (내가 PS가 자신의 안티 앨리어싱을 사용 알지만, IMagickDraw 진짜 나쁜 결과를 처리) : 나 그것 리터를 들어

Want this

+0

더 좋은 글꼴을 사용하십시오. – Incognito

+0

Arial은 "좋은 글꼴"이 아닙니다. 그렇게 생각하지 마십시오 –

+0

일부 글꼴이 더 잘 작동합니다. 일부 글꼴 및 시스템은 하위 픽셀 렌더링을 지원합니다. – Incognito

답변

1

앤티 엘리 어싱보다 저장했을 때 전체 이미지의 압축 수준과 비슷하며, setCompressionQuality을보고 그림에있는 "흐려짐"을 피할 때까지 압축 품질을 조정하십시오.

+0

감사합니다! 이제 제대로 작동합니다! –

+0

압축되지 않았습니까? 가까운 미래에 사용할 필요가 있기 때문에 setTextAntialias를 기억할 것입니다. 어쨌든 받아 주셔서 감사합니다 – aleation

+0

결과 : http://ctepeo.by/share/2012-11-20_15-47-20.png 보이는 매력! 내가 사용한 코드 : $ draw-> setTextAntialias (true); $ img-> setCompression (Imagick :: COMPRESSION_JPEG); $ img-> setCompressionQuality (100); 이제 모든 것이 정상입니다! 수동 php.net에는 아무런 기본값이 없었습니다. 그래서 나는 그것이 100이라고 생각했습니다. –

1

먼저 다른 글꼴을 사용해보십시오. 다음은 open sans (another link) 글꼴의 예입니다. enter image description here

+0

PHP에서 ImageMagick의 사용자 지정 글꼴을 사용하면 서버에 해당 글꼴을 설치해야하기 때문에 상상할 수 있습니다. – caiosm1005

관련 문제