Redimensionnement de l'image et de l'afficher sans l'enregistrer
J'ai construit une image de la galerie et enregistré l'image "tels quels", sans recadrage. Je veux redimensionner l'image à la volée alors qu'il est chargé dans le contrôleur, de sorte que, lorsque je charge le contrôleur dans le navigateur, il affiche l'image re-dimensionné pour ce que je veux. J'ai ajouté de la méthode de MY_Loader
, voici le code.
function show_image($image, $width, $height) {
$this->helper('file');
$image_content = read_file($image);
//resize image
$image = imagecreatefromjpeg($image);
$thumbImage = imagecreatetruecolor(50, 50);
imagecopyresized($thumbImage, $image, 0, 0, 0, 0, 50, 50, $width, $height);
imagejpeg($thumbImage,"",85);
imagedestroy($image);
imagedestroy($thumbImage);
header('Content-Length: '.strlen($image_content)); //sends filesize header
header('Content-Type: '. get_mime_by_extension($image)); //send mime-type header
header('Content-Disposition: inline; filename="'.basename($image).'";'); //sends filename header
exit($image_content); //reads and outputs the file onto the output buffer
}
À partir de ce code, j'obtiens beaucoup d'erreurs, y compris l'en-tête des erreurs. Ce que je fais mal?
Erreurs: (si utile)
Message: imagejpeg(): Filename cannot be empty
Message: Cannot modify header information - headers already sent by (output started at /Volumes/www/vhosts/ci/system/core/Exceptions.php:185)
Message: strrchr() expects parameter 1 to be string, resource given
Message: Cannot modify header information - headers already sent by (output started at /Volumes/www/vhosts/ci/system/core/Exceptions.php:185)
Message: basename() expects parameter 1 to be string, resource given
Message: Cannot modify header information - headers already sent by (output started at /Volumes/www/vhosts/ci/system/core/Exceptions.php:185)
Bonjour! Pourriez-vous veuillez coller ici les messages d'erreur? Les problèmes peuvent être la previousli envoyé des en-têtes, etc ... code html avant le code php .. etc...
ajouté le look ci-dessus
il n'y a pas de code html en cours de chargement im juste de l'appeler à partir du contrôleur de test.
ajouté le look ci-dessus
il n'y a pas de code html en cours de chargement im juste de l'appeler à partir du contrôleur de test.
OriginalL'auteur Sarmen B. | 2013-03-10
Vous devez vous connecter pour publier un commentaire.
Ok... alors...
la première chose, c'est que vous ne voulez pas enregistrer d'image, juste l'affichage
donc, vous devriez utiliser imagejpeg avec un seul paramètre.
poing tour je recommande ce changement. Écrivez-moi, quels changements avec des erreurs...
Et vous recommande de lire: http://php.net/manual/en/function.imagecopyresized.php
Et ce :
Me dit que quelque chose est incorrect avec l'exception de php...
veuillez vérifier, est BOM personnage au début du fichier... ou est-espaces, retours à la ligne après .. ou avant la balise php.. du code éditeur met ces irritatign caractères dans le code php...
Et tous les autres fichiers (qui s'affiche ce message d'erreur) doit être vérifié comme ça.
Parfois certains caractères à gauche avant la balise php... et si la sortie bufering est éteint comme le webservice lit le fichier, l'envoyer à la sortie inmedietly avec la valeur par défaut de l'en-tête.
( récemment html/texte d'en-tête ) . ( certains en-têtes ne peut pas être envoyé si d'autres en-tête envoyé déjà.. par exemple si le html/texte envoyé, image/jpeg ne peut pas être envoyé )
si vous ne voulez pas travailler un lit avec cette. Je ne sait pas comment votre système ressemble.
Je suppose que index.php est votre fichier d'amorçage, de les modifier.
Mais de meilleure solution pour examiner votre code php, et supprimer des lignes /caractères avant et après la balise php.
imagedestroy($thumbImage); ups, j'ai oublié cela. ne pas les détruire avant de l'envoyer vers la sortie. J'ai changé le code dans mon commentaire.
tahnk vous! il a travaillé, na pas le voir. j'ai aussi trouvé un codeigniter bibliothèque qui fait matmoo.com/digital-dribble/codeigniter/image_moo
Oui, parfois, il vaut mieux chercher un bon outil, que d'écrire la même chose. Mais pour lerning c'est une bonne chose, qui nous écrire à nouveau les codes. Et lorsque nous utilisons un outil , nous savons ce qui peut être à l'intérieur. Ou si l'outil ne fonctionne pas bien, nous pouvons le réparer.
OriginalL'auteur Kovge