Redimensionner image PNG en PHP
J'en ai pas d'affichage de l'image lors du redimensionnement PNG toutefois, le code suivant fonctionne pour JPEG.
list($width_orig, $height_orig) = getimagesize( $fileName );
$ratio_orig = $width_orig/$height_orig;
if ($width/$height > $ratio_orig) {
$width = $height*$ratio_orig;
} else {
$height = $width/$ratio_orig;
}
//Resample
$image_p = imagecreatetruecolor($width, $height);
if( $type )){
switch( $type ){
case 'image/jpeg':
$image = imagecreatefromjpeg($fileName);
imagecopyresampled($image_p, $image, 0, 0, 0, 0, $width, $height, $width_orig, $height_orig);
imagejpeg($image_p, null, 100);
break;
case 'image/png':
imagealphablending( $image_p, false );
imagesavealpha( $image_p, true );
$image = imagecreatefrompng( $fileName );
imagecopyresampled( $image_p, $image, 0, 0, 0, 0, $width, $height, $width_orig, $height_orig);
imagepng($image_p, null, 100);
break;
}
}
J'ai mis les en-têtes, mais pour une raison que je suis en train de faire quelque chose de mal pour les images png.
Ce que les en-têtes avez-vous utilisé?
Je ne vois pas où vous définissez
Je ne vois pas où vous définissez
$type
variable.OriginalL'auteur Ian | 2011-02-21
Vous devez vous connecter pour publier un commentaire.
Dernier argument en
imagepng($image_p, null, 100)
doit être comprise entre 0 et 9.Je suis tout à fait sûr que l'utilisation de
imagepng()
avec100
comme le 3ème paramètre doit émettre un avertissement, quelque chose commeWarning: imagepng(): gd-png error: compression level must be 0 through 9 in ...
😉 vérifiez le journal des erreurs la prochaine fois. Si vous avezdisplay_errors
activé, vous pouvez également voir l'erreur en ouvrant téléchargé le fichier image de certains éditeur de texte/spectateur (p. ex., "Vue" en mode texte dans Total commander) ou en supprimantContent-Type: image/png
etContent-Disposition: attachment
les en-têtes (uniquement pour le débogage!), si vous en avez.mais comment éviter la couleur d'arrière-plan (back)
Merci man, vous m'avez sauvé quelques heures!
quel est le dernier argument?
OriginalL'auteur binaryLV
essayez ceci:
OriginalL'auteur Alex Pliutau
voir si cela fonctionne
OriginalL'auteur Flaviano Silva