Redimensionner une image aussi grande! - PHP - Programmation
MarshPosté le 17-08-2006 à 14:34:01
Bonjour,
Je voulais savoir s'il est possible de redimensionner une image en jpeg d'une résolution de 2048*1536 directement via PHP Car en le faisant avec la fonction imagecreatefromjpeg suivi de la fonction imagecopyresampled, la fonction imagecreatefromjpeg me dit celà:
Fatal error: Allowed memory size of 8388608 bytes exhausted (tried to allocate 6920 bytes)
Voici d'autre part mon code:
function redimension_image($nom_image) { //--------------------------------------- Création de l'image a transférer $img_src= imagecreatefromjpeg("photos/$nom_image" );
//--------------------------------------- Récupération des dimensions $src_largeur = imagesx($img_src); $src_hauteur = imagesy($img_src);
//--------------------------------------- Dimension en fonction Hauteur/Largeur if($src_largeur > $src_hauteur) { $ratio = $src_hauteur/$src_largeur; $dst_largeur = 800; $dst_hauteur = $dst_largeur*$ratio;
//--------------------------------------- Dimension en fonction Hauteur/Largeur $img_dst = @imagecreatetruecolor(800,600); //--------------------------------------- Redimension de l'image source imagecopyresampled($img_dst,$img_src,$marge_gauche,$marge_haut,0,0,$dst_largeur,$dst_hauteur,$src_largeur,$src_hauteur); //--------------------------------------- Enregistrement de l'image en miniature $rep_final="photos/$nom_image"; imagejpeg($img_dst,$rep_final); }
Marsh Posté le 17-08-2006 à 14:34:01
Bonjour,
Je voulais savoir s'il est possible de redimensionner une image en jpeg d'une résolution de 2048*1536 directement via PHP
Car en le faisant avec la fonction imagecreatefromjpeg suivi de la fonction imagecopyresampled, la fonction imagecreatefromjpeg me dit celà:
Fatal error: Allowed memory size of 8388608 bytes exhausted (tried to allocate 6920 bytes)
Voici d'autre part mon code:
function redimension_image($nom_image)
{
//--------------------------------------- Création de l'image a transférer
$img_src= imagecreatefromjpeg("photos/$nom_image" );
//--------------------------------------- Récupération des dimensions
$src_largeur = imagesx($img_src);
$src_hauteur = imagesy($img_src);
//--------------------------------------- Dimension en fonction Hauteur/Largeur
if($src_largeur > $src_hauteur)
{
$ratio = $src_hauteur/$src_largeur;
$dst_largeur = 800;
$dst_hauteur = $dst_largeur*$ratio;
$marge_haut = (600 - $dst_hauteur)/2;
$marge_gauche = 0;
}
else
{
$ratio = $src_largeur/$src_hauteur;
$dst_hauteur = 600;
$dst_largeur = $dst_hauteur*$ratio;
$marge_haut = 0;
$marge_gauche = (800 - $dst_largeur)/2;
}
//--------------------------------------- Dimension en fonction Hauteur/Largeur
$img_dst = @imagecreatetruecolor(800,600);
//--------------------------------------- Redimension de l'image source
imagecopyresampled($img_dst,$img_src,$marge_gauche,$marge_haut,0,0,$dst_largeur,$dst_hauteur,$src_largeur,$src_hauteur);
//--------------------------------------- Enregistrement de l'image en miniature
$rep_final="photos/$nom_image";
imagejpeg($img_dst,$rep_final);
}
---------------
Mon FeedBack | Mon topic de vente