miniature ou effet photo dans le code

Statut
N'est pas ouverte pour d'autres réponses.

LebecK

Elite
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
 
N

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>
 
1er
OP
LebecK

LebecK

Elite
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
 

Bartdude

Touriste
LebecK a dit:
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
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...
 

BLun-

:mrstrange:
Staff
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: )
 
1er
OP
LebecK

LebecK

Elite
BLun[silly a dit:
]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: )
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
 
1er
OP
LebecK

LebecK

Elite
Bartdude a dit:
LebecK a dit:
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
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...
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
 
1er
OP
LebecK

LebecK

Elite
il sert a quoi exactement le
"header("Content-type: image/jpeg"); "
???
c'est necessaire ?
 
N

niafron

ex membre
LebecK a dit:
il sert a quoi exactement le
"header("Content-type: image/jpeg"); "
???
c'est necessaire ?
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)
 

PiaFlalCoOl

NiuAge
Cool, plein de belle zimage hehehe
 

guslinux

Gamerz'ien
niafron a dit:
un peu de concret :

http://90plan.ovh.net/~meetpoin/test_img/T_list_dir_dyn.php

voila comme ca on voit ce que cela donne
le code source c celui explique plus haut ;)
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 ...
 
N

niafron

ex membre
guslinux a dit:
niafron a dit:
un peu de concret :

http://90plan.ovh.net/~meetpoin/test_img/T_list_dir_dyn.php

voila comme ca on voit ce que cela donne
le code source c celui explique plus haut ;)
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 ...
je ne fais pas le malin, je maitrise c tout :D
( ouch ma tete est si lourde en ce moment )
 

guslinux

Gamerz'ien
niafron a dit:
guslinux a dit:
niafron a dit:
un peu de concret :

http://90plan.ovh.net/~meetpoin/test_img/T_list_dir_dyn.php

voila comme ca on voit ce que cela donne
le code source c celui explique plus haut ;)
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 ...
je ne fais pas le malin, je maitrise c tout :D
( ouch ma tete est si lourde en ce moment )

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...)
 
Statut
N'est pas ouverte pour d'autres réponses.
Haut