2012-11-07 3 views
1

다른 비슷한 질문을 여러 번 보았습니다.하지만 불행히도 그 중 아무도 내가 가지고있는 문제를 도왔습니다.Xampp imagecreatefrompng() 깨진 이미지 생성

이것은 스크립트입니다.

<?php 
    // returns a PNG graph from the $_GET['per'] variable 
    $per = imagecreate(302,7); 
    $background = imagecolorallocate($per, 0xFF, 0xFF, 0xFF); 
    $foreground = imagecolorallocate($per, 0x00, 0x8A, 0x01); 
    $border = imagecolorallocate($per, 0x99, 0x99, 0x99); 
    if ($_GET['per'] > 0) 
    { 
     $grad = imagecreatefrompng("images/grad.png"); 
     $per2 = imagecopy($per, $grad, 1, 1, 0, 0, ($_GET['per'] * 3), 5); 
     imagerectangle($per, 0, 0, 301, 6, $border); 
    } 

    header("Content-type: image/png"); 
    imagepng($per,NULL,5); 
?> 

GD 지원이 설정되어 있으므로 문제가 무엇인지 잘 모르겠습니다. 이미지를 사용하지 않고 간단한 막대 만 만들면 잘 작동하지만 이미지로 만들려고하면 깨진 이미지가 나타납니다.

+0

error_log에 PHP 오류가 있습니까? – drew010

+0

아니요, 모두에게 오류보고가 설정되어 있습니다. 알림도 표시되지 않습니다. – kira423

+0

$ per2가 true인지 확인하여 imagecopy가 작동하는지 확인 했습니까? – ernie

답변

1

당신이 per가 있는지 확인해야합니다, 그렇지 않으면이이

if (isset($_GET['per']) && $_GET['per'] > 0) 

또는이 비어 있지 있는지 확인하고 싶은 경우가 존재해야 정의되지 않은 인덱스 오류

if ($_GET['per'] > 0) 

가 발생합니다 할 수 있습니다

if (!empty($_GET['per']) && $_GET['per'] > 0) 

empty() 함수는 변수가 비어 있는지 여부를 확인하기 전에 변수가 존재하는지 확인합니다.

+0

OP의 의견은 로그에 아무 것도 없기 때문에 정의되지 않은 색인 오류가 아니라고 제안합니다. . . – ernie

+0

로그가 비어 있어도 오류가 발생하지 않는다는 의미는 아닙니다. 나는 그의 근원을 가지고 달려 갔고 그게 내가 가진 유일한 오류였다. 일단 그것이 고쳐지면 그의 대본은 나를 위해 잘 작동했다. 그가 그 오류를 얻지는 못했지만 그것을 사용하기 전에 변수와 색인이 존재하는지 항상 확인하는 것이 가장 좋습니다. – Sheac

+0

이것을 사용해도 여전히 작동하지 않습니다. 코드에 오류가 없으면 Xampp – kira423