Grandes images et php
Résolu
cho88
Messages postés
70
Date d'inscription
Statut
Membre
Dernière intervention
-
cho88 Messages postés 70 Date d'inscription Statut Membre Dernière intervention -
cho88 Messages postés 70 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
j'aurais aimé savoir s'il était possible de gérer des images de plus de 2Mo avec les fonctions php telles que imagetruecolor ou imagecopyresampled etc... enfin la série habituelle. je souhaiterai pouvoir introduire des photos d'appareils récents c'est à dire d'environ 3,5Mo en général.
si ces fonctions ne peuvent pas gérer une telle capacité, comment puis-je alors procéder pour réaliser ma galerie d'image?
merci d'avance
j'aurais aimé savoir s'il était possible de gérer des images de plus de 2Mo avec les fonctions php telles que imagetruecolor ou imagecopyresampled etc... enfin la série habituelle. je souhaiterai pouvoir introduire des photos d'appareils récents c'est à dire d'environ 3,5Mo en général.
si ces fonctions ne peuvent pas gérer une telle capacité, comment puis-je alors procéder pour réaliser ma galerie d'image?
merci d'avance
A voir également:
- Grandes images et php
- Des images - Guide
- Easy php - Télécharger - Divers Web & Internet
- Expert php pinterest - Télécharger - Langages
- Extraire images pdf - Guide
- Recherche images - Guide
5 réponses
Salut!
C'est pas mon habitude de filer un code tout fait.. Mais je sais ce que c'est que la galère..
function resizeImg($filename, $max_size, $destfile) {
//load image
$imgsrc = imagecreatefromjpeg($filename);
if ($imgsrc == '') {
$echo = "problem while loading image...";
exit;
}
//calculate size
$src_h = imagesy($imgsrc);
$src_w = imagesx($imgsrc);
if (($src_h>$max_size)||($src_w>$max_size))
{
if ($src_h > $src_w) {
$ratio = $src_h / $src_w;
$dest_h = $max_size;
$dest_w = $dest_h / $ratio;
} else {
$ratio = $src_w / $src_h;
$dest_w = $max_size;
$dest_h = $dest_w / $ratio;
}
$imgdest = imagecreatetruecolor($dest_w, $dest_h);
imagecopyresampled($imgdest, $imgsrc, 0, 0, 0, 0, $dest_w, $dest_h, $src_w, $src_h);
if ( $destfile == '' ) $destfile = $filename;
imagejpeg($imgdest, $destfile);
imagedestroy($imgdest);
}
else
{
if (($destfile!='')&&(($src_h<600)||($src_w<600)))
Copy($filename,$destfile);
if (($max_size=220)&&(($src_h<220)||($src_w<220)))
Copy($filename,$destfile);
}
imagedestroy($imgsrc);
}
Bonne soirée
C'est pas mon habitude de filer un code tout fait.. Mais je sais ce que c'est que la galère..
function resizeImg($filename, $max_size, $destfile) {
//load image
$imgsrc = imagecreatefromjpeg($filename);
if ($imgsrc == '') {
$echo = "problem while loading image...";
exit;
}
//calculate size
$src_h = imagesy($imgsrc);
$src_w = imagesx($imgsrc);
if (($src_h>$max_size)||($src_w>$max_size))
{
if ($src_h > $src_w) {
$ratio = $src_h / $src_w;
$dest_h = $max_size;
$dest_w = $dest_h / $ratio;
} else {
$ratio = $src_w / $src_h;
$dest_w = $max_size;
$dest_h = $dest_w / $ratio;
}
$imgdest = imagecreatetruecolor($dest_w, $dest_h);
imagecopyresampled($imgdest, $imgsrc, 0, 0, 0, 0, $dest_w, $dest_h, $src_w, $src_h);
if ( $destfile == '' ) $destfile = $filename;
imagejpeg($imgdest, $destfile);
imagedestroy($imgdest);
}
else
{
if (($destfile!='')&&(($src_h<600)||($src_w<600)))
Copy($filename,$destfile);
if (($max_size=220)&&(($src_h<220)||($src_w<220)))
Copy($filename,$destfile);
}
imagedestroy($imgsrc);
}
Bonne soirée
Ami Terrien, pour traiter de grandes images, n'oublie pas également d'utiliser en premier lieu :
ini_set('memory_limit','32M'); // Ou plus ...
(Ce ne sera ptet pas utile, ça dépend du type d'hébergement utilisé)
ini_set('memory_limit','32M'); // Ou plus ...
(Ce ne sera ptet pas utile, ça dépend du type d'hébergement utilisé)
Je t'ai peut-être répondu une connerie suivant ce que tu veux faire...
dans ton upload, précise :
dans ton upload, précise :
ini_set('memory_limit', 8000000); // en octets set_time_limit(600); // en secondes $extensions_ok = array('png', 'gif', 'jpg', 'JPG', 'jpeg', 'JPEG'); $taille_max = 8000000; $dest_dossier = 'ton chemin'; // utilise également des slashes sous windows : $dest_dossier = 'd:/damien/photos/'; // vérifications if( !in_array( substr(strrchr($_FILES['image']['name'], '.'), 1), $extensions_ok ) ) { $erreur = 'Veuillez sélectionner un fichier de type png, gif ou jpg !'; } elseif( file_exists($_FILES['image']['tmp_name']) and filesize($_FILES['image']['tmp_name']) > $taille_max) { $erreur = 'Votre fichier doit faire moins de 500Ko !'; } // copie du fichier ...
Aussi, il te faudra penser à aller modifier ton php.ini et mettre le MAX_FILE_SIZE à plus de 2MO (la valeur généralement utilisée). Si t'es sur un hébergement mutualisé, ce ne sera pas possible.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question