2012-11-24 2 views
2

URL을 통해 전달 된 매개 변수를 사용하여 모든 텍스트의 PNG 이미지를 생성하는 간단한 서비스가 있습니다. 다음을 생성 http://picselbocs.com/projects/cakemyface/text.php?params=Verdana%7C18%7Cbold%7Cnormal%7Ccenter%7C%23cc0000%7Cunderline&text=Hello%20world!PHP GD`imagecreatefromstring` 함수로 이미지 생성 관련 문제

: 매개 변수 중 하나는 텍스트 자체이며, 나머지는 '글꼴', '색상', '글꼴 두께'등

이러한 URL의 예와 같은 상황이되어 있습니다 PNG :

다른 스크립트에서 original

, 나는 그것에서 작동해야하기 때문에 그때, imagecreatefromstring()을 사용하여 이미지로 변환이 서비스에 의해 생성 된 이러한 자원 검색 cURL을 사용하고 있습니다 - 같은 것들을 회전 및 크기 조정 - 다음 병합 다른 이미지들. 당신은 출력을 볼 수있는

function getImage($url){ 
      $ch = curl_init ($url); 
      curl_setopt($ch, CURLOPT_HEADER, 0); 
      curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
      curl_setopt($ch, CURLOPT_BINARYTRANSFER,1); 
      $resource = curl_exec($ch); 
      curl_close ($ch); 

      return $resource; 
    } 


    $url = "http://picselbocs.com/projects/cakemyface/text.php?params=Verdana%7C18%7Cbold%7Cnormal%7Ccenter%7C%23cc0000%7Cunderline&text=Hello%20world!"; 

    $string = getImage($url); 
    $image = imagecreatefromstring($string); 

    // Send the image to the client 
    header("Content-type: image/png"); 
    header("Content-disposition: inline; filename=mytext.png"); 
    imagepng($image); 
    imagedestroy($image); 

이 같은 코드를 사용할 수 here입니다 : 는이를 위해 다음 코드를 사용합니다. 문제는 위의 코드는 모든 문자가 울부 짖는 소리의 예에서와 같이 사각형을 가득 이상한 PNG를 출력한다는 것입니다 :

sample result

왜 이런 일이 않고, 내가 그것을 어떻게 해결할 수 있습니까?

또 다른 궁금한 점은 Google 광고 도구 (예 : QR code)로 생성 된 QR 코드로 연결되는 링크를 사용하여 URL을 텍스트 이미지로 바꾸면 그 결과가 어떻게 될까요? ...

+1

예제 URL (첫 번째 URL)을 따르면 단지 10x10 픽셀의 흰색 이미지입니까? – Dale

+0

링크를 수정했습니다. 다시 시도하십시오. –

+2

투명성 문제 일 수 있습니까? text.php에서 imagecolortransparent로 놀아 보자. – gogowitsch

답변

3

약간 놀아서 나는 문제점 및 해결책을 발견했다!

$image = imagecreatefromstring(file_get_contents('http://picselbocs.com/projects/cakemyface/text.php?params=Verdana|18|bold|normal|center|%23cc0000|underline&text=Hello%20world!')); 
imagesavealpha($image, TRUE); // this is the fix 
header("Content-Type: image/png"); 
imagepng($image); 

내 이미지는 단지 컬을 사용하지 않고 빠른 방법입니다 만드는 방법은, 이미지가 절약 알파 채널의 요구 보인다.

+0

그 트릭을 했어! 환상적! 정말 고맙습니다! –

+0

문제가없는 보스 :) – Dale