Titre: création de thumbs
Posté par: maximus le le 30-04-2003 a 08:53:04
Hello tout le monde... :)
Voici mon problème :
Je suis en train de coder une galerie et j'ai des problèmes pour créer les thumbs à partir de l'image d'origine... Niveau taille, pas de problèmes (je garde les proportions de l'original) mais là ou ca merde, c'est avec les couleurs... Ces dernières sont complétement altérée et c'est pas zoli :(
http://www.djrocca.ch/new/index.php?sct=pics&page=gallerie&idg=8 (http://www.djrocca.ch/new/index.php?sct=pics&page=gallerie&idg=8)
ouala
merci d'avance ;) |
Titre: Re:création de thumbs
Posté par: maximus le le 30-04-2003 a 08:59:18
ah j'oubliais...
J'utilise la fonction "imagecopyresized()" en php pour faire les thumbs... pour ca que je post le problème ici... |
Titre: Re:création de thumbs
Posté par: goa103 le le 01-05-2003 a 18:57:01
Salut Max,
Tu dois utiliser les fonctions "truecolor" pour que l'image ne soit pas altérée. En effet l'ancienne version de GD ne supportant pas le truecolor. Et dans le cas d'une image JPEG ou PNG... Le résultat est affreux car converti en 256 couleurs ! Tu dois donc utiliser "imagecreatetruecolor" pour créer ta miniature (thumb) et non pas "imagecreate". "imagecopyresized" c'est bien mais "imagecopyresampled" c'est mieux, bien que plus lent. Normalement tu ne dois pas générer tes miniatures à la volée, c'est pour ça que l'utilisation de "resampled" n'est pas si pénalisante.
Si ca peut t'aider voici le code source complet d'un générateur de miniature, comme tu peux le voir j'ai utilisé truecolor et resampled. Une fois la miniature générée à partir de l'image originale, je peux l'utiliser sans problème sur mon site:
Code:
/** AdminGalleryThumbCreatorCreateThumb
@param urlPathImage Chemin des images
@param urlThumbFolder Créer les miniatures dans un sous-répertoire
@param sFilename Image filename */
function AdminGalleryThumbCreatorCreateThumb ($urlPathImage, $urlThumbFolder, $sFilename) { // Est-ce un JPEG ? $sFullPath = $urlPathImage . "/" . $sFilename; $im = @imagecreatefromjpeg ($sFullPath); if ($im != false) { ?> (<B>jpeg</B>) src: <CODE><?= $sFullPath ?></CODE> <?PHP // Créer le thumb folder @mkdir ($urlPathImage . "/" . $urlThumbFolder, 0700); // Créer la miniature $nWidth = imagesx ($im); $nHeight = imagesy ($im); $nThumbSize = 64; if ($nWidth < $nHeight) { $nDestWidth = (int) ((float) $nWidth * ((float) $nThumbSize / (float) $nHeight)); $nDestHeight = $nThumbSize; } else { $nDestWidth = $nThumbSize; $nDestHeight = (int) ((float) $nHeight * ((float) $nThumbSize / (float) $nWidth)); } // 2002-09-29 19:56:11 jmmolina bug fix Thumb size // thumb has the size of the original image arf arf :) (imagecreatetruecolor wrong param) //$imThumb = imagecreatetruecolor ($nWidth, $nHeight); $imThumb = imagecreatetruecolor ($nDestWidth, $nDestHeight);
// Copy and resize part of an image with resampling ?>dest <?= $nDestWidth ?>px * <?= $nDestHeight ?>px: <?PHP imagecopyresampled ($imThumb, $im, 0, 0, 0, 0, $nDestWidth, $nDestHeight, $nWidth, $nHeight); // Ecriture sur le disque $sThumbFilename = $urlPathImage . "/" . $urlThumbFolder . "/" . $sFilename; ?><CODE><?= $sThumbFilename ?></CODE><?PHP imagejpeg ($imThumb, $sThumbFilename);
imagedestroy ($im); imagedestroy ($imThumb); } }
|
|
JM |
Titre: Re:création de thumbs
Posté par: maximus le le 02-05-2003 a 08:57:12
ah d'accord !
Ben merci beaucoup :-* ! V essayer avec ce que tu m'as dit...
a+ |
Forum-webmaster | Actionné par YaBB SE
© 2001-2003, YaBB SE Dev Team. Tous droits réservés.
|