Page 1 sur 1

redimensionner des images

Posté : 22 nov. 2010, 14:36
par x@v
Bonjour,
contexte
je reçois une chaine de caractères provenant d'une base de donnée qui correspond à plusieurs images.
Je n'ai pas de problème pour les afficher les images.
ex: http://www.antiqbijoux.com/?page=produits&cat=8
Par contre les tailles des images sont très diverses ce qui les déformes quand elle sont en miniatures.
Je procède directement en html :

<img alt="produit IMG_5616.jpg" style="border: 3px solid rgb(255, 255, 255); height: 140px; width: 140px;" src="images/IMG_5616.jpg">

Existe-il une solution si je stocke la largeur et hauteur de l'images en php ?
Peut-être faut-il créer des miniatures ?

Merci

Re: redimensionner des images

Posté : 22 nov. 2010, 14:51
par Mazarini
Bonjour,

Voir la fonction getimagesize http://php.net/manual/en/function.getimagesize.php

Ensuite à toi de calculer une hauteur et une largeur en fonction des dimensions réelles de l'image retournée par getimagesize.

Re: redimensionner des images

Posté : 22 nov. 2010, 14:52
par xTG
Avec la librairie GD tu peux manipuler les images.
Donc récupérer leur taille, ou même les redimensionner.

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

Après à toi de voir quel ratio tu veux faire. C'est une simple règle de trois.

Re: redimensionner des images

Posté : 22 nov. 2010, 15:00
par x@v
En faite j'ai un script, il fonctionne pas très bien :
les miniatures créées sont de mauvaises qualités, ont voit pratiquement pas l'image, voilà ça fonctionne bien une fois sur deux
<?php
function miniature($chemin_original, $chemin_mini, $fichier_image, $largeur_mini)
{
  $image_origine = imagecreatefromjpeg("$chemin_original/$fichier_image");
  $largeur_origine = imagesx($image_origine);
  $hauteur_origine = imagesy($image_origine);
  $hauteur_mini = $hauteur_origine * $largeur_mini /   $largeur_origine;
  $image_finale = imagecreate($largeur_mini, $hauteur_mini);
  imagecopyresized($image_finale, $image_origine, 0, 0, 0, 0,   $largeur_mini, $hauteur_mini, imagesx($image_origine), imagesy($image_origine) );

  imagejpeg($image_finale, "$chemin_mini/$fichier_image");
  imagedestroy($image_finale);
  return true;
}
miniature("photos", "photos/mini", "bague.jpg", "200");
?>