Retourner aux forums || Retourner au forum Programmation.php
Programmation.php : Transformation d'image: effet de perspective
Posté par Dinofly (page perso, ) le 30 septembre 2005
Bonjour à tous,
Dans un script PHP, j'aimerais traiter une image afin de lui donner un pseudo effet de perspective (en gros, à partir d'une image rectangulaire, obtenir une image trapézoïdale (?)).
Ma question est toute simple: connaissez-vous un script tout fait qui offre cette fonctionnalité ou bien dois-je l'écrire moi-même ?
Dans un script PHP, j'aimerais traiter une image afin de lui donner un pseudo effet de perspective (en gros, à partir d'une image rectangulaire, obtenir une image trapézoïdale (?)).
Ma question est toute simple: connaissez-vous un script tout fait qui offre cette fonctionnalité ou bien dois-je l'écrire moi-même ?
--
Je connais bien l'algèbre de Boole, et j'ai même vu tous ses flims.
> Lire le message (4 commentaires, moyenne: 2).
Je connais bien l'algèbre de Boole, et j'ai même vu tous ses flims.
C'est cadeau, ça fait plaisir
Posté par
Fnourry () le 30/09/2005 à 14:15. (lien). Évalué à 4.
Et hop. Je viens de faire ce script en utilisant en particulier 'imagecopyresized' ligne par ligne. J'espère que c'est ce que tu cherches.
<?php
// Image::Trapeze(chemin de l'image JPG, base superieure, base inférieure)
function trapeze($sImagePath, $nSupX, $nSubX) {
$source = imagecreatefromjpeg($sImagePath);
list($width, $height) = getimagesize($sImagePath);
$thumb = imagecreate(max($nSupX, $nSubX), $height);
imagefill($thumb, 0, 0, ImageColorAllocate( $thumb, 0, 0, 0 )); // <<---- Couleur de fond
$nCoefX = ((float)($nSubX-$nSupX))/($height*2);
$nPosStartX = ($width-$nSupX)/2;
$nPosEndX = ($width-$nSubX)/2;
$nPosX = ($width-$nSupX)/2 - min($nPosStartX, $nPosEndX);
$nNewWidth = $nSupX;
for($cpt=0; $cpt<$height; $cpt++) {
imagecopyresized($thumb, $source, $nPosX, $cpt, 0, $cpt, $nNewWidth, 1, $width, 1);
$nPosX -= $nCoefX;
$nNewWidth += $nCoefX*2;
}
return $thumb;
}
// Fichier et nouvelle taille
$filename = 'test.jpg';
// Content type
header('Content-type: image/jpeg');
// Affichage
imagejpeg(trapeze($filename, 100 , 100));
?>
-
[^]Re: C'est cadeau, ça fait plaisir
-
[^]Re: C'est cadeau, ça fait plaisir
-
[^]Re: C'est cadeau, ça fait plaisir
Posté par Dinofly (page perso, ) le 30/09/2005 à 19:48. (lien). Évalué à 1.Ouah, merci beaucoup, je n'en demandais pas tant :-)
Je vais remanier un peu le code pour pouvoir faire un parallélépipède dans n'importe quel sens, ton code m'a permis de voir que finalement, bidouiller des images ligne par ligne en PHP, c'est pas si lent que je l'aurais imaginé !--
Je connais bien l'algèbre de Boole, et j'ai même vu tous ses flims.
Revenir en haut de page || Retourner aux forums || Retourner au forum Programmation.php



Cette discussion est archivée, il n'est plus possible de laisser des commentaires.
Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.