création d'une image dynamique téléchargeable par le client

création d'une image dynamique téléchargeable par le client - PHP - Programmation

Marsh Posté le 25-10-2004 à 23:18:52    

Bonjour à tous
 
J'aimerais arrivé à créer une image dynamique que le visiteur puisse enregistrée sur son ordinateur.  
 
J'ai de grandes images que je voudrais distribuer à de différentes tailles. Pour une question de volume (place disque), je ne peux pas me permettre d'avoir une image par taille d'image proposée.
 
Je pense qu'il y a deux parties au script :  
- la création de l'image dynamique
- son affichage
 
Est ce que quelqu'un aurait un bout de script qui irait dans ce sens ?
 

Reply

Marsh Posté le 25-10-2004 à 23:18:52   

Reply

Marsh Posté le 25-10-2004 à 23:21:16    

1/ tu crees une nouvelle image a partir de celle existante
2/ tu la resize
3/ tu l'envoie au client avec les headers qui vont bien


---------------
Nos estans firs di nosse pitite patreye...
Reply

Marsh Posté le 25-10-2004 à 23:21:31    

http://fr.php.net/manual/fr/ref.image.php


---------------
Nos estans firs di nosse pitite patreye...
Reply

Marsh Posté le 26-10-2004 à 00:10:24    

Voici ce que j'ai essayé mais j'ai encore des soucis.
La librairie est installé normalement installé.
 
Voici le code de la page qui génère l'image dynamique :
<?php
 
   header("Content-type: image/jpeg" );
   $pic = "Photo070-sat.jpg";
   $width=100;
   $im    = imagecreatefromjpeg($pic);
   $px    = (imagesx($im) - 7.5 * strlen($string)) / 2;
 
   $old_x=imageSX($im);
   $old_y=imageSY($im);
 
   $new_w=(int)($width);
   if (($new_w<=0) or ($new_w>$old_x)) {
     $new_w=$old_x;
   }
 
   $new_h=($old_x*($new_w/$old_x));
 
   if ($old_x > $old_y) {
       $thumb_w=$new_w;
       $thumb_h=$old_y*($new_h/$old_x);
 
   }
   if ($old_x < $old_y) {
       $thumb_w=$old_x*($new_w/$old_y);
       $thumb_h=$new_h;
   }
   if ($old_x == $old_y) {
       $thumb_w=$new_w;
       $thumb_h=$new_h;
   }
     $thumb=ImageCreateTrueColor($thumb_w,$thumb_h);
     imagecopyresized($thumb,$im,0,0,0,0,$thumb_w,$thumb_h,$old_x,$old_y);
 
   imagejpeg($thumb,"",90);
   imagedestroy($thumb);
?>  
 
Je fais l'appel de cette image dans une page html en faisant un <img src="image-dyn.php">
 
Où est ce que je me trompe ??

Reply

Marsh Posté le 26-10-2004 à 00:21:54    

Ca marche.  
Merci KangOl pour ton aide.
 
Voici le code corrigé de la page de création de l'image dynamique (image-dyn.php)  
 
 
<?php
header('Content-type: image/jpeg');
   $pic = "Photo070-sat.jpg";
   $width=300;
   $im    = imagecreatefromjpeg($pic);
  // $orange = imagecolorallocate($im, 220, 210, 60);
  // $px    = (imagesx($im) - 7.5 * strlen($string)) / 2;
 
   $old_x=imageSX($im);
   
   $old_y=imageSY($im);
 
   $new_w=(int)($width);
   if (($new_w<=0) or ($new_w>$old_x)) {
     $new_w=$old_x;
   }
 
   $new_h=($old_x*($new_w/$old_x));
 
   if ($old_x > $old_y) {
       $thumb_w=$new_w;
       $thumb_h=$old_y*($new_h/$old_x);
 
   }
   if ($old_x < $old_y) {
       $thumb_w=$old_x*($new_w/$old_y);
       $thumb_h=$new_h;
   }
   if ($old_x == $old_y) {
       $thumb_w=$new_w;
       $thumb_h=$new_h;
   }
     $thumb=ImageCreateTrueColor($thumb_w,$thumb_h);
     imagecopyresized($thumb,$im,0,0,0,0,$thumb_w,$thumb_h,$old_x,$old_y);
 
   imagejpeg($thumb,"",90);
   imagedestroy($thumb);
?>  
 
Pour afficher cette image, créer une page html normal et appelez de la manière suivante : <img src="image-dyn.php">

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed