Forum Clubic

Besoin d'aide en php pour un enregistrment automatique d'image

bonjour, bon c’est un peu compliqué…
En gros j’ai tout un tas d’image (les noms sont differents pour chaque mais ca je peux leur mettre le meme nom…
J’ai une fonction qui resize mes images…Je voudrais un bout de code qui puisse recuperer les images une par une pour les redimensionner et leur donner un nom qui s’incremente…
voila mon peu de code pour l’instant qui ne fonctionne pas mais qui expliquera je pense mon but:


<?
function retaille_jpeg($fichier, $ratio=0.5)
{
  $jpeg   = imagecreatefromjpeg($fichier);
  $jpeg_width  = imagesx($jpeg);
  $jpeg_height = imagesy($jpeg);
  $thumb_width = $jpeg_width * $ratio;
  $thumb_height = $jpeg_height * $ratio;

  $thumb = imagecreatetruecolor($thumb_width, $thumb_height);

  imagecopyresampled($thumb, $jpeg, 0, 0, 0, 0,
                     $thumb_width, $thumb_height, $jpeg_width, $jpeg_height);

  imagedestroy($jpeg);
  return $thumb;
}
$i=1;
$requete=mysql_query("select id from groupe");
while ($row=mysql_fetch_row($requete)){
$i++;

/* crée une miniature à 1/4 */
$mini = retaille_jpeg("image.jpeg",0.10);

/* écriture dans un fichier */
 
imagejpeg($mini, "new_image$i.jpeg", 70);
}

?>

merci d’avance
Edité le 05/06/2008 à 11:40

bon petite modif :smiley: avec le code que j’ai modifié je pense qu’en mettant le nom moi meme aux images comme je le souhaite je devrait parvenir a ce que je veux…Donc voila le code du dessus me crée bien une image qui s’appelle " new_image".jpg …avec les modifications aucune image n’est crées c’est embetant :ane:

<?
//recuperer le nmero de la derniere ligne
$i=1;
$requete=mysql_query("select max(id) from groupe ");
while ($row=mysql_fetch_row($requete)){
$dernier_id=$row[0];
echo $dernier_id;
}

function retaille_jpeg($fichier, $ratio=0.5){
//pour toutes les lignes de la BDD
for ($i;$i<=$dernier_id;$i++){

//redimension de l'image
  $jpeg   = imagecreatefromjpeg($fichier);
  $jpeg_width  = imagesx($jpeg);
  $jpeg_height = imagesy($jpeg);
  $thumb_width = $jpeg_width * $ratio;
  $thumb_height = $jpeg_height * $ratio;

  $thumb = imagecreatetruecolor($thumb_width, $thumb_height);

  imagecopyresampled($thumb, $jpeg, 0, 0, 0, 0,
                     $thumb_width, $thumb_height, $jpeg_width, $jpeg_height);

  imagedestroy($jpeg);
  return $thumb;


/* crée une miniature à 1/4 */
$mini = retaille_jpeg("image$i.jpeg",0.10);

/* écriture dans un fichier */
 
imagejpeg($mini, "new_image$i.jpg", 70);
}
}

?>

voila ptete que vous aller voir plus clair maintenant :wink:

un petit up …:jap:

bon tant pis j’ai trouvé tout seul mais je post le code quand meme

<?php
//recuperer le nmero de la derniere ligne
$i=2;
$requete=mysql_query("select max(id) from groupe ");
while ($row=mysql_fetch_row($requete)){
$dernier_id=$row[0];

}

function retaille_jpeg($fichier, $ratio=0.5){
//pour toutes les lignes de la BDD


//redimension de l'image
  $jpeg   = imagecreatefromjpeg($fichier);
  $jpeg_width  = imagesx($jpeg);
  $jpeg_height = imagesy($jpeg);
  $thumb_width = $jpeg_width * $ratio;
  $thumb_height = $jpeg_height * $ratio;

  $thumb = imagecreatetruecolor($thumb_width, $thumb_height);

  imagecopyresampled($thumb, $jpeg, 0, 0, 0, 0,
                     $thumb_width, $thumb_height, $jpeg_width, $jpeg_height);

  imagedestroy($jpeg);
  return $thumb;
  }
  
for ($i;$i<=$dernier_id;$i++){
if (file_exists("image$i.jpg")){
/* crée une miniature à 1/4 */
$mini = retaille_jpeg("image$i.jpg",0.10);

/* écriture dans un fichier */
 
imagejpeg($mini, "new_image$i.jpg", 70);
}
}

?>


<?php

function imageThumb( $file, $desti, $ratio = 0.5 ) {

	$imageSource = imagecreatefromjpeg( $file );
	$imageWidth = imagesx( $imageSource );
	$imageHeight = imagesy( $imageSource );

	$thumbWidth = $imageWidth * $ratio;
	$thumbHeight = $imageHeight * $ratio;

	$imageDesti = imagecreatetruecolor( $thumbWidth, $thumbHeight );
	
	imagecopyresampled($imageDesti, $imageSource, 0, 0, 0, 0, $thumbWidth, $thumbHeight, $imageWidth, $thumbHeight );

	imagejpeg($imageDesti, $desti, 70);

	imagedestroy($imageSource);
	imagedestroy($imageDesti);

}

$req['listeImage'] = mysql_query( "SELECT `id` FROM `groupe`" );
while ( list( $idImage ) = mysql_fetch_row( $req['listeImage'] ) {
	imageThumb( 'monImage'.$idImage.'.jpg', 'new_monImage'.$idImage.'.jpg', 0.10 );
}

mysql_free_result( $req['listeImage'] );

?>

Comme si tu n’as plus de probleme pour testé à chaque fois si le fichier exists, tu ne resize uniquement les images que tu as dans ta base de données ( Je presume que si ya l’image dedans c’est que le fichier est bien présent dans le repertoire ).

oui ok mais ca revient au meme nn? a moins que toi ce soit plus rapide mais je ne vois pas en quoi … :etonne2::smiley:

bon tient je pose une question dans mon ancien post vu que ca concerne ce code et que sa ne vaut pas le coup de creer un nouveau sujet…
voila donc en fait mes images de base donc image$i.jpg j’ai mi un chemin absolu pour les mettre dans un dossier specifique …ca fonctionne .normal jusque la :smiley:
par contre :frowning: pur cette ligne : imagejpeg($mini, “new_image$i.jpg”, 70);
si je met un chemin devant new_image$i.jpg il ne les enregistre plus pk??? :arf:

Exemple ?

nn dsl c’est bon j’ai trouvé !!! c’est juste que derriere le \ du lien il fallait un espace…donc j’ai pas compris pourquoi mais bon sa a fonctionné