2012-11-07 4 views
1

J'ai regardé plusieurs autres questions similaires, mais malheureusement aucune d'entre elles n'a aidé le problème que j'ai.Xampp imagecreatefrompng() produisant une image cassée

Ceci est le script.

<?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); 
?> 

J'ai vérifié que le support GD est activé, donc je ne suis pas sûr du problème. Si je construis juste une barre simple sans l'utilisation d'une image, cela fonctionnera bien, mais quand j'essaye de construire avec une image, cela montre juste une image d'une image brisée.

+0

Des erreurs PHP apparaissant dans le error_log? – drew010

+0

Non, et j'ai des rapports d'erreurs réglés à tous, je ne reçois aucun avis non plus. – kira423

+0

Avez-vous vérifié que la copie d'image fonctionne en vérifiant que $ per2 est vrai? – ernie

Répondre

1

vous devez vous assurer que per existe, sinon cela jette une erreur d'index non défini

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

devrait être cette

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

ou si vous voulez vous assurer que ce ne est pas vide et existe , vous pouvez le faire

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

depuis leLa fonctionvérifie également si la variable existe avant de vérifier si elle est vide.

+0

Les commentaires d'OP suggèrent qu'il ne s'agit pas d'une erreur d'index non définie car il n'y a rien dans les journaux. . . – ernie

+0

Je comprends mais juste parce que le journal est vide ne veut pas dire qu'il n'y a pas d'erreur. J'ai pris sa source et l'ai couru et c'était la seule erreur que j'ai eue. Une fois que cela a été corrigé, son script a très bien fonctionné pour moi. Même s'il n'obtient pas cette erreur, il est toujours préférable de vérifier si votre variable & index existe avant d'essayer de l'utiliser. – Sheac

+0

Même en utilisant cela, il ne fonctionne toujours pas, si ce n'est pas une erreur avec le code, il doit y avoir une erreur avec Xampp – kira423

Questions connexes