2015-01-20 2 views
3

elaphantimagecreatefrompng() PNG의 투명한 부분은

내가 PHP를 사용하여 포스터를 만드는 오전 나는 포스터에 그림을 추가 할 검은 색입니다.

나는 그것들을 추가하려면 다음 코드를 사용

$src1 = imagecreatefrompng("m2.png"); 
$widthsrc=0; 
$heightsrc=0; 
list($widthsrc, $heightsrc, $typesrc, $attrsrc) = getimagesize("m2.png"); 

$background = imagecolorallocate($src1, 0, 0, 0); 
imagecolortransparent($src1, $background); 
imagealphablending($src1, false); 
imagesavealpha($src1, true); 

imagecopyresampled($my_img,$src1,$line2X1+100*$resize,$line2Y1,0,0,1000*$resize,1000*$resize,$widthsrc,$heightsrc); 

문제는 수치가 투명해야 장소, 그들은 검은 점이다.

이미 다음 글에서 보았다 :

  1. imagecreatefrompng-makes-a-black-background-instead-of-transparent
  2. hp-resizing-png-images-generate-black-background
  3. png-has-black-background

하지만 나를 위해 작동하는 솔루션을 만들 수 없었다. 쉽게 XD 변환 의견이었다

+0

그럼 뭐니? – Scriptable

+1

'$ background'는'imagecolorallocatealpha ($ src1,0,0,0,127);'이어야합니다. 개인적으로 (오래된 스프라이트 게임의 정신으로), 나는 마젠타가 이미지의 "전통적인"투명 색상이기 때문에'255,0,255,127'을 사용할 것입니다. –

+0

문제를 해결 한 ThanksNiettheDarkAbsol에게 감사드립니다. – Niclassg

답변

2

음 대답 :

귀하의 실수는 배경 색상을 정의했다. 이를 사용해야합니다 :

$background = imagecolorallocatealpha($src,0,0,0,127); 

그러나, 아마 안전, 이미 이미지에 존재하는 "투명"색을 사용하지 않는 것이 좋습니다. 오래된 스프라이트 기반 게임의 "전통적인"투명한 색은 마젠타 색입니다. 이미지에서 직선 자홍색을 사용하는 것은 거의 불가능하기 때문입니다!

$background = imagecolorallocatealpha($src,255,0,255,127);