8722 sujets

Développement web côté serveur, CMS

Bonjour,

Dans le cadre de mon apprentissage du PHP - GD, je réalise l'extraction d'une image carrée à partir d'une image format portrait. L'image carrée à comme côté la largeur de l'image format portrait, elle est extraite de la zone centrale de l'image format portrait.

Mon problème, enfin je pense que cela viens de cette instruction, est que je n'arrive pas à afficher l'image carrée avec l'instruction :

imagejpeg($image_p, null, 100);


En fait j'obtiens l'affichage suivant :

����JFIF��

Mon code est le suivant :

<?php
$filename = 'test.jpg';

$size = getimagesize($filename);
$width = $size[0];
$height = $size[1];

if ( $width >= $height )
{ $format = "paysage" ; } // en cours de développement
else
{ $format = "portrait" ;

$thumb = $width ;
$dest_x = 0 ;
$dest_y = $thumb ;
$src_x = 0 ;
$src_y = ($height - $thumb)/2 + $thumb ;
$dest_w = $width ;
$dest_h = $thumb ;
$src_w = $width ;
$src_h = $height ;

$image = imagecreatefromjpeg($filename);
$image_p = imagecreatetruecolor($dest_w, $dest_h);

imagecopyresampled($image_p, $image, $dest_x, $dest_y, $src_x, $src_y, $dest_w, $dest_h, $src_w, $src_h);

imagejpeg($image_p, null, 100);
};
?>

Merci par avance pour votre aide.
Cordialement
J'ai déjà essayé cette instruction sans succès. En fait avec elle je n'ai plus aucun affichage des "echo" et autres.

Merci pour votre réponse
Modérateur
pmara a écrit :
J'ai déjà essayé cette instruction sans succès. En fait avec elle je n'ai plus aucun affichage des &quot;echo&quot; et autres.

Merci pour votre réponse

Heuh c'est bien le but, tu ne peux pas faire de echo dans une image… car ce n'est plus une sortie texte.

Ce code se trouve dans un contexte? Car logiquement dans le fichier php, il ne devrait pas y avoir grand chose d'autre que le code que l'on voit. Si par exemple il y a eu des echo ou du html avant ce code, header('Content-Type: image/jpeg') ne fonctionnera pas vu que les en-têtes ont déjà été envoyées.
kustolovic a écrit :

Heuh c'est bien le but, tu ne peux pas faire de echo dans une image… car ce n'est plus une sortie texte.

Ce code se trouve dans un contexte? Car logiquement dans le fichier php, il ne devrait pas y avoir grand chose d'autre que le code que l'on voit. Si par exemple il y a eu des echo ou du html avant ce code, header('Content-Type: image/jpeg') ne fonctionnera pas vu que les en-têtes ont déjà été envoyées.



Effectivement, en supprimant les "echo" cela fonctionne.

Merci por votre aide.