2010-06-18 2 views
4

PHP로 본 최신 애니메이션에서 고유 한 포럼 서명을 만들고 싶습니다. 이들은 RSS 피드에 포함되어 있습니다. 내 로컬 아파치 서버에서 이미지가 제대로 생성되지만 서버에 업로드 할 때 오류가 발생하고 그림이 전혀 생성되지 않습니다.내 PHP에서 생성 된 png 파일의 문제점은 무엇입니까?

여기 내 코드가 있습니다. Dreamweaver CS5 또는 phpDesigner 7도 phpDesigner에서 [실행] 버튼을 누르면 오류가 표시되지 않지만 문제는 무엇인지 궁금합니다. 오류는 발생하지만 무엇이 있는지 모르겠습니다. 그 뜻은. 사전에

<?php 
    // title & description arrays 
    $titleCuts = array(); 
    $descCuts = array(); 
    // bg image 
    $bgimg = imagecreatefrompng('sig_robin.png'); 
    // colors 
    $white = imagecolorallocate($bgimg, 255, 255, 255); 
    $textColor = imagecolorallocate($bgimg, 245, 193, 9); 
    $shapeColor = imagecolorallocate($bgimg, 27, 20, 0); 

    // sxe <- xml url 
    $sxe = new SimpleXMLElement('http://myanimelist.net/rss.php?type=rw&u=fema', NULL, TRUE); 

    // shape 
    imagefilledrectangle($bgimg, 255, 20, 567, 279, $shapeColor); 

    // TEXTS 
    imagettftext($bgimg, 20, 0, 263, 52, $white, "my.ttf", "Latest Watched:"); 
    // episodes' text 
    for($i=0;$i<5;$i++) 
    { 
     // title cut and joint 
     $titleCuts = explode(' ', $sxe->channel->item[$i]->title, -2); 
     $titleCut = implode(' ',$titleCuts); 
     // description (ep) cut and joint 
     $descCuts = explode(' ', $sxe->channel->item[$i]->description); 
     // output 
     imagettftext($bgimg, 10, 0, 270, 77+($i*45), $textColor, "my.ttf", $titleCut); 
     imagettftext($bgimg, 10, 0, 270+(strlen($titleCut)*7.2), 92+($i*45), $textColor, "my.ttf", "ep. ".$descCuts[2]); 
    } 

    header('Content-type: image/png');  
    // generating image 
    imagepng($bgimg); 
?> 

감사 : 그래서 코드는 다음과 같다

Line: 6 - Fatal error: Call to undefined function imagecreatefrompng() in [php's path here]

:이 오류는 다음과 같다.

편집 :
머리글을 제거 했으므로 이제 글꼴 파일을 찾을 수 없다는 오류가 많이 발생하지만 올바르게 작성했는지 확신 할 수 없습니다.

그들은 다음과 같이 :

Warning: imagettftext() [function.imagettftext]: Could not find/open font in ... on line 19

답변

1

좋아, 두 번째 문제에 대한 솔루션은 자사가 PHP는 버그 http://bugs.php.net/bug.php?id=41336

하지만 다음과 같은 방법으로 해결하기 쉬운 : 다음 예에서와 같이 넣어

모든 전에 ./ * TTF 파일 :

imagettftext(IMAGE, 0, 0, 0, 0, TEXT_COLOR, "./ttf_file.ttf", TEXT); 
+0

젠장 ... 나는 그것이 문제라고 생각하지 않지만, 지금 해결되었습니다. : 고마워! –

+1

당신을 진심으로 환영합니다. 내가 할 수있는 또 다른 일은'@imagecreatefrompng (...의 시작 부분에 @ 문자를 넣는 것입니다.)'나쁜 변환 이미지를로드하고 오류 메시지가 표시되어 이미지가 표시되지 않는 경우가 발생할 수 있기 때문에 –

+1

팁 주셔서 감사합니다! ;) –

2

이 GD 중 하나를 PHP로 컴파일되지 않았거나로드되지 않았 음을 의미합니다. 먼저 으로 찾을 수있는 경로 인 php.ini를 확인하고 세미콜론으로 주석 처리하지 않았는지 확인하십시오. 설정을 변경 한 후 웹 서버를 다시 시작한 다음 phpinfo()을 다시보고 GD가로드되었는지 확인합니다.

1

이 기능을 사용하려면 (imagecreatefrompng) 당신의 PHP는 this page를 참조 자세한 내용은 GD 확장 (으로 설치해야합니다.

가 무엇인지 확인하려면 /로 로컬 서버에 PHP 파일을 만들고, 설치하고 있지 않습니다 단지 :

그리고 같은 파일 (GD) 섹션은 서버에서 실행되는 이미지를 비교 당신이 공유 호스팅 서버에있는 경우에 당신은 아마 자신의 관리자에게 문의해야합니다 것을

참고. 설치/구성하기 너를 위해서. imagecreatefrompng IF

2

가 정의되지 않은 가능성이 가장 높은 GD 라이브러리가 설치되지 않았거나 고장, 참조 : http://php.net/manual/en/image.installation.php

는, '구성 및 PHP를 재 구축해야 할'일반적으로 패키지 관리자에 의해 놀라지 마세요 는 추가 패키지를 설치하여 GD 지원을 쉽게 추가 할 수 있습니다.

관련 문제