2012-12-21 2 views
1

투명 PNG 파일을 GIF에 넣을 때까지 PHP 코드로 워터 마크를 표시하려고합니다. 모든 것이 잘 작동하는 것처럼 보입니다. 이것은 무슨 :PHP - 투명 PNG를 GIF에 동적으로 추가하십시오.

enter image description here

그래서 대신에 투명 블랙 워터 마크를, 나는 상단에이 반 녹색으로 일을 얻을.

... 
    $image = imagecreatefromgif($filepath);; 
    $watermark_image = imagecreatefrompng($wm_filepath); 
    imagealphablending($watermark_image, false); 
    imagesavealpha($watermark_image, true); 
    imagegif($image, $filepath); 
    imagedestroy($image); 


    imagecopy($image, $watermark_image, $offset['x'], $offset['y'], 0, 0, imagesx($watermark_image), imagesy($watermark_image)); 

추신 : 워터 마크가 나는 다음과 같은 PHP 코드를 사용 enter image description here

입니다

가 지금은 PNG 파일로 이미지를 저장하고있다 : 나는

imagealphablending() 
    imagesavealpha() 

를 사용하여 다른 설정을 결합하는 시도하고 어떤 결과

UPD 없어 언급해야합니다. 나는이 두 행을 삭제했다 imagealphablending($watermark_image, false); imagesavealpha($watermark_image, true); 그리고 그것은 효과가있다. 그러나 PNG의 투명도는 GIF와 겹치고 있습니다. imagealphablending($image, true); 도움이되지 않았습니다. 내가 무엇을하여야한다?

답변

0

GIF 파일은 256 색으로 제한되며 투명색으로 지정된 단일 색이 있습니다. 따라서 안티 알리아싱 된 투명도를 가질 수 없으며 어떠한 종류의 앤티 엘리 어싱도 많이 할 수 없습니다.

대신 PNG로 저장하는 것이 좋습니다.

+0

답장을 보내 주셔서 감사합니다. 나는'imagepng ($ image, $ filepath);'를 사용하여 PNG로 저장하려고 시도하고 있지만 워터 마크의 배경이 "투명"하지 않은 것을 제외하고는 같은 결과를 얻었습니다 ... – NullPointerException

+0

업데이트 된 질문 – NullPointerException

관련 문제