Redimensionnement images

Résolu/Fermé
griko Messages postés 343 Date d'inscription samedi 31 janvier 2009 Statut Membre Dernière intervention 29 avril 2014 - 20 sept. 2009 à 11:26
griko Messages postés 343 Date d'inscription samedi 31 janvier 2009 Statut Membre Dernière intervention 29 avril 2014 - 30 sept. 2009 à 10:42
Bonjour,

y aurait-il un moyen de redimensionné une image
quand elle est au format paysage, que la hauteur soit réduite à 65px
quand elle est au format portrait, que la largeur soit réduite à 65px

Qui peut m'aider ??
A voir également:

7 réponses

avion-f16 Messages postés 19250 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 22 décembre 2024 4 505
23 sept. 2009 à 13:36
Essaye avec ça :
<?php
$image_ressource = 'image.png';
$size = getimagesize($image_ressource);
$largeur = $size[0];
$hauteur = $size[1];

if($largeur > $hauteur) {
	// Format paysage
	$n_largeur = 65;
	$qu = ceil($largeur/$n_largeur);
	$n_hauteur = ceil($hauteur/$qu);
	
	header("Content-type: image/png");
	$image = imagecreatefrompng($image_ressource);
	$miniature = imagecreatetruecolor($n_largeur,$n_hauteur);
	imagecopyresampled($miniature, $image, 0, 0, 0, 0, $n_largeur, $n_hauteur, $largeur, $hauteur);
	imagepng($miniature);
} else {
	// Format portrait
	$n_hauteur = 65;
	$qu = ceil($hauteur/$n_hauteur);
	$n_largeur = ceil($largeur/$qu);
	
	header("Content-type: image/jpeg");
	$image = imagecreatefromjpeg($image_ressource);
	$miniature = imagecreatetruecolor($n_largeur,$n_hauteur);
	imagecopyresampled($miniature, $image, 0, 0, 0, 0, $n_largeur, $n_hauteur, $largeur, $hauteur);
	imagepng($miniature);
}
?>
1
avion-f16 Messages postés 19250 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 22 décembre 2024 4 505
20 sept. 2009 à 11:32
<img src="tonimage.png" alt="Texte alternatif ; !obligatoir!" style="max-width:65px;max-height:65px;" />
0
griko Messages postés 343 Date d'inscription samedi 31 janvier 2009 Statut Membre Dernière intervention 29 avril 2014 10
20 sept. 2009 à 11:34
Désolé je n'ai pas précisé,

c'est redimensionnement lors de l'upload sur le site
0
avion-f16 Messages postés 19250 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 22 décembre 2024 4 505
20 sept. 2009 à 11:40
Utilise la bibliothèque GD.
Tu trouveras toutes les fonctions nécessaires ici.
Pour savoir si elle est au format paysage ou en portrait, récupère la largeur et la hauteur puis fait une conditions "si la largeur est plus grande que la hauteur" « if($largeur > $hauteur) ».
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
griko Messages postés 343 Date d'inscription samedi 31 janvier 2009 Statut Membre Dernière intervention 29 avril 2014 10
20 sept. 2009 à 11:47
ok donc en gros il faudrait

<?php
$source = imagecreatefromjpeg("couchersoleil.jpg"); // La photo est la source

// Les fonctions imagesx et imagesy renvoient la largeur et la hauteur d'une image
$largeur_source = imagesx($source);
$hauteur_source = imagesy($source);

if($largeur_source > $hauteur_source)
{
      $destination = imagecreatetruecolor(65, 65); // On crée la miniature vide

}else{
      $destination = imagecreatetruecolor(65, 65); // On crée la miniature vide
}

// MAIS j'y pense, il faudrait, je ne sais pas si c'est possible qu'il redimensionne si hauteur> largeur, largeur=65 et si largeur > hauteur, hauteur=65 et l'autre coté se redimensionne automatiquement mais il l'image final est 65x65 (mais pas écrasé!!) (Je ne sais pas si je suis très claire !)
// On redimensionne et après on récupère 65x65 pour voir ce que l'on veux

$largeur_destination = imagesx($destination);
$hauteur_destination = imagesy($destination);

// On crée la miniature
imagecopyresampled($destination, $source, 0, 0, 0, 0, $largeur_destination, $hauteur_destination, $largeur_source, $hauteur_source);

// On enregistre la miniature sous le nom "mini_couchersoleil.jpg"
imagejpeg($destination, 'mini_couchersoleil.jpg');
?>
0
griko Messages postés 343 Date d'inscription samedi 31 janvier 2009 Statut Membre Dernière intervention 29 avril 2014 10
23 sept. 2009 à 10:28
Pas d'idées ?
0
griko Messages postés 343 Date d'inscription samedi 31 janvier 2009 Statut Membre Dernière intervention 29 avril 2014 10
30 sept. 2009 à 10:06
Sa fonctionne mais se que je veux c'est :

si la largeur > hauteur, alors hauteur = 65
si la hauteur > largeur , alors largeur = 65

j'ai échangé ton code si qui donne
								$image_ressource = ''.$dossier . $nom_changer . $fichier2.'';
$size = getimagesize($image_ressource);
$largeur = $size[0];
$hauteur = $size[1];

if($largeur > $hauteur) {
	// Format paysage
	$n_hauteur = 65;
	$qu = ceil($hauteur/$n_hauteur);
	$n_largeur = ceil($largeur/$qu);
	
	header("Content-type: image/png");
	$image = imagecreatefromjpeg($image_ressource);
	$miniature = imagecreatetruecolor($n_largeur,$n_hauteur);
	imagecopyresampled($miniature, $image, 0, 0, 0, 0, $n_largeur, $n_hauteur, $largeur, $hauteur);
	imagepng($miniature);
	
	
} else {
	// Format portrait
	$n_largeur = 65;
	$qu = ceil($largeur/$n_largeur);
	$n_hauteur = ceil($hauteur/$qu);
	
	header("Content-type: image/jpeg");
	$image = imagecreatefrompng($image_ressource);
	$miniature = imagecreatetruecolor($n_largeur,$n_hauteur);
	imagecopyresampled($miniature, $image, 0, 0, 0, 0, $n_largeur, $n_hauteur, $largeur, $hauteur);
	imagepng($miniature);
}


Mais je n'ai pas de résultat, juste l'adresse url de la page actuelle

Donc comment faire pour que ça fonctionne ?
0
griko Messages postés 343 Date d'inscription samedi 31 janvier 2009 Statut Membre Dernière intervention 29 avril 2014 10
30 sept. 2009 à 10:31
Ex:
après réduction si une image fait 85x65, dans cette image, centré l'image a 65x65 px
0
griko Messages postés 343 Date d'inscription samedi 31 janvier 2009 Statut Membre Dernière intervention 29 avril 2014 10 > griko Messages postés 343 Date d'inscription samedi 31 janvier 2009 Statut Membre Dernière intervention 29 avril 2014
30 sept. 2009 à 10:42
Je pense qu'il faudrait utilisé un recadrage, non ?
0