miniature ou effet photo dans le code

Discussion dans 'Web, design' créé par LebecK, 10 Février 2004.

Statut de la discussion:
Fermée.
  1. Offline
    LebecK Touriste
    j voudrais savoir comment faire, en php de préférence sinon en java pour faire des miniature auto de photo
    (comment c'est fait sur gamerz?)

    (qu'est se qui est le plus rapide pour le visiteur?
    -utilisé 2 * une photo de 100k dont une en mini en definissant les tailles
    -une de 10k pour la mini et une de 100 pour la photo normale )

    accessoirement est se qu'il est possible de mettre leffet ombré .. avec le code .. et qu'il s'adapte au photo (qui ne sont pas toute dans le meme sens)

    http://membres.lycos.fr/lebeck69/PHOTO/

    merci d'avance a ceux qui auront tous lu .. particulièrement a ceux qui auront fait un effort de comprehenssion .. et pour se qui est du reste .. j e prie :D
    LebecK, 10 Février 2004
    #1
  2. Offline
    niafron ex membre
    ca tombe bien, voici le code pondu aujourdhui

    Code:
            define('X', 100);
            define('Y', 100);
            define('IM_DIR', "images_test/");
    
            /*
             * createThumb
             + creation de la miniature d une image
             *
             * en IN  : - le nom de l image (path)
             * en OUT : - la ressource image
             */
            function createThumb($name_img) {
                    $src = @imagecreatefromjpeg($name_img);
                    if(!$src) {
                            $im = imagecreate(X, Y); // Création d'une image blanche
                            $bgc = imagecolorallocate($im, 0, 0, 0);
                            $tc  = imagecolorallocate($im, 255, 255, 255);
                            imagefilledrectangle($im, 0, 0, X, Y, $bgc);
                            // Affichage d'une image d erreur si nous n avons pas pu ouvrir
                            // l image desiree
                            imagestring($im, 1, 5, 5, "Loading error", $tc);
                            return $im;
                    
                    } else {
                            // Array ( [0] => X [1] => X [2] => X [3] => width="XXX" height="XXX" [bits] => X [channels] => X )
                            $array = getimagesize($name_img);
                            $im = imagecreate(100, ($array[1]/$array[0])*100);
                            imagecopyresized($im , $src, 0, 0, 0, 0, 100, ($array[1]/$array[0])*100, $array[0], $array[1]);
                            return $im;
                    }
            }
            
            // EXEMPLE
            // pour l affichage de la page :
            header("Content-type: image/jpeg");
            imagejpeg(createThumb(IM_DIR."".$_GET['loc'])); // le in de la fonction = PATH de l image
                                                            // attention sous windows on ne peut pas aller
                                                            // chercher des images distantes (sur un autre serveur)
                                                            // cfr explication sur la fonction d ouverture d image
            // on appel alors la page php avec ce header dans une balise IMG avec la source = page php
    

    bon un conseil pas plus de 30 images a la fois
    g tenter avec une 100 aine img et mon pc a eu un peu de mal (5 sec pour tout loader)

    JPEG/JPG only cette fct biensur !

    un petit exemple concret ;)
    nous avons la page
    T_image.php qui s occupera de creer l image miniature et que l on pourra afficher

    T_image.php
    Code:
            header("Content-type: image/jpeg");
            imagejpeg(createThumb(IM_DIR."".$_GET['loc']));
    

    tu mets la fonction dans un autre fichier et tu la cherche avec un include

    ensuite une petite page de creation de galerie de maniere dynamique
    (si dans le repertoire pointer comme contenant les images ce dernier possede autre chose que des jpg/jpeg et bien on aura une image "Loading erreur")

    autre_page.php
    Code:
    <?php
    /*
     * returnTabPics
     + on retourne le contenu d un repertoire
     *
     * en IN  : - le repertoire (son PATH)
     * en OUT : - le tableau contenant le nom de tous les fichier
     */
    function returnTabPics($path) {
            $i = 0;
            if ($dir = opendir($path)) {
                    while($file = readdir($dir)) {
                            if(strchr($file,".") && (!in_array($file,array(".","..")))) {
                                    // on ajoute un fichier à la table
                                    $tabPics[$i] = $file;
                                    $i++;
                                    
                            }
                            
                    }
                    
                    closedir($dir);
            
            }
            
            return $tabPics;
    }
            ?>
            <table>
             <tr>
            <?php
            $cpt = 0;
            $array_ret = returnTabPics("images_test");
            for($i = 0; $i < count($array_ret); $i++) {
                    ?>
                    <td>
                    <br /><br />
                    <a href="images_test/<?php echo $array_ret[$i]; ?>" target="_blank"><img src="T_image.php?loc=<?php echo $array_ret[$i]; ?>"></a><br />
                    <?php
                    echo $array_ret[$i];
                    ?>
                    </td>
                    <?php
                    if($cpt == 4) {
                            $cpt = 0;
                            ?>
                            </tr><tr>
                            <?php
                    } else
                            $cpt++;
            }
            ?>
             </tr>
            </table>
    
    niafron, 10 Février 2004
    #2
  3. Offline
    LebecK Touriste
    Gg niafron .. un tous grand merci .. j regarde sa demain a tete reposée .. mais en survolant ya dja pas mal de fonction que j connais pas ... va y avoir du sport :D
    LebecK, 10 Février 2004
    #3
  4. Offline
    Bartdude Touriste
    je ne suis pas sur que la fonction Readdir soit dispo partout. Par exemple, chez free, je n'ai pas pu l'utiliser. Il est donc possible que le code ne marche pas chez Lycos...
    Bartdude, 11 Février 2004
    #4
  5. Offline
    BLun- y u do dis
    Equipe GamerZ.be
    On peut avoir un exemple? parce que là... jvois pas bien...

    (j'm'y connais pas du tout.. mais je m'interresse un peu. :wink: )
    BLun-, 11 Février 2004
    #5
  6. Offline
    LebecK Touriste
    lol il donne le code .. le nom des pages .. et comment faire ;)
    si sa te rassure.. j ai des tites base php .. j suis oqp depuis se matin .. et j capt pas encore tous le code haha (suis perdu dans toute ses fonctions image)

    par contre niafron .. si t'utilise deja ton code dans unepage online .. un lien serait le bien venu ;) la j suis d'accord :D
    LebecK, 11 Février 2004
    #6
  7. Offline
    LebecK Touriste
    ma page photo est sur lycos .. et j utilise un readdir .. il fonctionne tres bien .. mais c'est bien possible que sur free sa marche pas
    LebecK, 11 Février 2004
    #7
  8. Offline
    LebecK Touriste
    il sert a quoi exactement le
    "header("Content-type: image/jpeg"); "
    ???
    c'est necessaire ?
    LebecK, 11 Février 2004
    #8
  9. Offline
    niafron ex membre
    oui c oblige, cela permet de faire comprendre a ton explorer que la page kil va loader est en fait une image (il lit d abord le header qd il charge un document)
    sinon a la place de l image sous forme de "dessin" tu auras l images sous forme de string ... bon c toujours l image mais l utilite est assez limite il faut l avouer

    pour le moment ce script ne fonctionne que sur mon pc en local mais ce soir je le up sur un de mes serveur pour voir ;) (OVH a nous 2)
    niafron, 11 Février 2004
    #9
  10. Offline
    niafron ex membre
    niafron, 11 Février 2004
    #10
  11. Offline
    PiaFlalCoOl NiuAge
    Cool, plein de belle zimage hehehe
    PiaFlalCoOl, 11 Février 2004
    #11
  12. Offline
    LebecK Touriste
    LebecK, 12 Février 2004
    #12
  13. Offline
    guslinux Gamerz'ien
    gardez moi ca comme il fait le matin :D

    perso j'avais implémenté ca dans un site, mais j'ai eu des problemes avec les librairies GD de mon serveur... mais ca fait 6mois de ca.. concl j'ai laissé tombé... mais je v réutiliser, un site de vente de truc d'art ...
    guslinux, 12 Février 2004
    #13
  14. Offline
    niafron ex membre
    je ne fais pas le malin, je maitrise c tout :D
    ( ouch ma tete est si lourde en ce moment )
    niafron, 12 Février 2004
    #14
  15. Offline
    guslinux Gamerz'ien

    lol si tu vx un coups de main, tu peux te déverser sur moi :) ms en fait je devais etre fatigué quand g répondu au post parce que je pensais avoir répondu à un gas que je connais (ki est ds ma liste msn et avec qui j'écghange des tuyaux php...)
    guslinux, 13 Février 2004
    #15
Statut de la discussion:
Fermée.