Problème passe de ressource GD dans une class

Répondre
Bzh
le 16/07/2007 à 15:05
Bzh
Bonjour,

La fatigue surement ma fait perdre du temps bêtement sur un souci à la c**...

J'ai une class me permettant de gérer mes images (redimmentionner etc .... )

Or, j'ai $this->ressource qui contient la ressource GD de l'image.

Mais si je passe la ressource d'une deuxième image à $this->ressource, ca ne fonctionne pas...

Voici la méthode de ma class correspondant:
<?php
//Methode permettant de redimentionner l'image
function redimmentionner( $taille_max, $sauvegarder=true ){

//On regarde quel est le coté le plus long
if( ( imagesx( $this->ressource ) / imagesy( $this->ressource ) ) >= 1 ){

//L'image est plus large que haute, on impose donc la largeur
$ressource_tmp = imagecreatetruecolor( $taille_max, ( $taille_max * imagesy( $this->ressource ) ) / imagesx( $this->ressource ) ); // On crée l'image redimensionné vide dans l'aquelle on va placer notre image!

}else{

//L'image est plus haute que large, on impose donc la hauteur
$ressource_tmp = imagecreatetruecolor( ( $taille_max * imagesx( $this->ressource ) ) / imagesy( $this->ressource ), $taille_max ); // On crée l'image redimensionné vide dans l'aquelle on va placer notre image!

}
//On recadre notre image dans la nouvelle redimmentionnée
imagecopyresampled( $ressource_tmp, $this->ressource, 0, 0, 0, 0, imagesx( $ressource_tmp ), imagesy( $ressource_tmp ), imagesx( $this->ressource ), imagesy( $this->ressource ) );
//On modifie nos ressources
$this->ressource = $ressource_tmp;
imagedestroy( $ressource_tmp );
//On sauvegarde notre iimage redimmentionnée si souhaité
if( $sauvegarder ){ $this->sauvegarder(); }

return true;
}

?>


Pourquoi la ligne 22 de ma méthode rend la ressource $this->ressource invalide ???

Merci de votre aide, je perds patience :( !
moogli
le 16/07/2007 à 17:28
moogli
salut;

c'est quoi l'erreur que tu a ?
Il en faut peu pour être heureux !!!!!
Bzh
le 16/07/2007 à 17:56
Bzh
Tout simplement que $this->ressource n'est plus une ressource GD valide lorsque la ligne 23 est exécuté. Si je la commente, je n'ai plus cette erreur.

<?php

//On modifie nos ressources
$this->ressource = $ressource_tmp;

?>
Répondre

Ecrire un message

Votre message vient d'être créé avec succès.
LoadingChargement en cours