À l'aide de imagejpeg pour enregistrer & servir de fichier image
Je suis en train de faire un peu d'expérience avec PHP + de manipulation de l'Image. Je suis en train de convertir des images en noir et blanc. Je suis la plupart du temps compris mais ont un léger problème.
Afin de réduire la charge sur le serveur, j'ai voulu enregistrer le B&W les versions uniquement le filtrage des images sur des images qui n'ont pas été exécutée par le script avant. Donc, j'ai quelque chose comme ceci:
<?php
header("Content-type: image/jpeg");
$file = $_GET['img'];
$name = md5($file).".jpg";
if(file_exists("/path/to/file" . $name)) {
ob_clean();
flush();
readfile("path/to/file" . $name);
exit;
}
else {
$image = imagecreatefromjpeg($file);
imagefilter($image, IMG_FILTER_GRAYSCALE);
imagejpeg($image, "/path/to/file" . $name);
imagedestroy($image);
};
?>
Ce n'créer le B&W les versions des fichiers et de les enregistrer sur le serveur. La première instruction "if" est également de travailler correctement sert de l'image si elle existe déjà.
Le problème est que pour les nouvelles images qui sont passés à travers, cela permet d'économiser, mais n'a pas de sortie pour le navigateur. Que puis-je utiliser/modifier afin de le faire?
Aussi, c'est ma première fois de faire quelque chose comme cela. Tout conseils généraux que vous avez au sujet de faire le ci-dessus serait appréciée.
OriginalL'auteur V. Arora | 2010-12-07
Vous devez vous connecter pour publier un commentaire.
Un compact et de forme correcte pour la fonction ci-dessus peuvent être:
OriginalL'auteur Stoic
Parce que vous êtes l'enregistrement de l'image avec
imagejpeg()
dans leelse
partie, votre image ne sera pas affichée.Donc, vous devez ajouter
après
imagedestroy()
;).OriginalL'auteur thedom
Vous peut encapsuler l'image de sortie de code dans une fonction, - quelque chose comme cela (non testé):
OriginalL'auteur Mike