CLASSE DE REDIMENSION D'IMAGE.

cs_oox Messages postés 6 Date d'inscription dimanche 22 avril 2007 Statut Membre Dernière intervention 26 avril 2007 - 22 avril 2007 à 12:38
bonnebouffe Messages postés 38 Date d'inscription lundi 15 septembre 2003 Statut Membre Dernière intervention 24 novembre 2008 - 20 juil. 2007 à 10:55
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/42368-classe-de-redimension-d-image

bonnebouffe Messages postés 38 Date d'inscription lundi 15 septembre 2003 Statut Membre Dernière intervention 24 novembre 2008
20 juil. 2007 à 10:55
Bonjour,
Dans mon cas, je détermine la hauteur de la nouvelle image mais pas sa largeur -> ne serait-il pas possible de ne pas devoir spécifier largeur (ou mettre 0) mais quand même conserver les proportions ?
J'espère que je suis clair dans ma demande ;-)
Merci d'avance,
Christophe
Yaug Messages postés 35 Date d'inscription jeudi 16 septembre 2004 Statut Membre Dernière intervention 3 septembre 2010
26 avril 2007 à 15:45
hum...
en gros, type est valable uniquement is il est compris dans les types répertoriés dans le tableau extensions.
si le type est valable, on arrive ensuite à ce que tu indique.
Donc on récupere le type de l'image, selon son type on crée l'image de base.

Donc, jsuis pas doué faut croire, mais je vois pas trop.
Certe je donne au final que 3 possibilités (les trois plus stables on dira) en dur dans le code dans mes cases, mais je ne vois pas trop comment changer ca.
Donc je suis ouvert à tout conseil.
cs_oox Messages postés 6 Date d'inscription dimanche 22 avril 2007 Statut Membre Dernière intervention 26 avril 2007
26 avril 2007 à 11:39
@Yaug: tu te trompes :
# switch ($this->type) // On teste l'extension du fichier pour utiliser la fonction adéquate
# {
# case 1: $source = imagecreatefromgif($this->source); break;
# case 2: $source = imagecreatefromjpeg($this->source); break;
# case 3: $source = imagecreatefrompng($this->source); break;
# }

Me dis pas que là c'est pas en dur ...
bugs74 Messages postés 5 Date d'inscription mardi 2 novembre 2004 Statut Membre Dernière intervention 21 novembre 2010
24 avril 2007 à 11:17
comme le "superflu" a été enlevé, je vais regarder de prêt pour mon apprentissage personnel ;)
Yaug Messages postés 35 Date d'inscription jeudi 16 septembre 2004 Statut Membre Dernière intervention 3 septembre 2010
23 avril 2007 à 08:10
bon corrigé pour presque tout.
Effectivement j'aurais du faire comme tu le préconise pour verif_extension, c'est corrigé.
Pour le <?php a la place de <? c'est changé aussi meme si ca ne pause pas de probleme a xml.
le public, corrigé aussi.

Par contre, pour le coup des extensions, elle ne sont jamais fixe.
Je déclare à la classe les extensions dans le constructeur, si elle ne sont pas définies elles sont fixes.
Donc je ne vois pas trop ou est le probleme sachant que la vérification dans resize fait appele à cette déclaration des extensions dans le constructeur.

Merci d'avoir pris le temps de regarder cette source.
cs_oox Messages postés 6 Date d'inscription dimanche 22 avril 2007 Statut Membre Dernière intervention 26 avril 2007
22 avril 2007 à 12:38
Alors, remplace <? par <?php pour éviter d'éventuelles erreurs avec XML. Ajoute public devant ta fonction __construct(). Tu as mis des castes (string) un peu partout, à tord. Par exemple, new_width est un int ... Retire donc ces (string) qui ne serve à rien.

Cette solution pour verif_extension() est préférable.
private function verif_extension()
{
return in_array($this->type,$this->extensions);
}

Dans le constructeur tu définis des valeurs 'variables' pour tes extensions alors que dans resize elles sont fixes ... Tu as eu tord :)

Pour finir, la PHPDoc c'est /** et pas /*
Rejoignez-nous