Ajouter des reflets à vos images ou vos photos - reflet dans de l'eau

0/5 (4 avis)

Vue 6 040 fois - Téléchargée 761 fois

Description

vous aimeriez ajouter ce genre d'effet à vos images, c'est relativement simple ; vous faite un include de ce programme, vous rajouter la fonction dans votre code GD ; un petit copier - coller avec ImageCopyResampled ; et voila !!

Source / Exemple :


<?php
if(!ob_start("ob_gzhandler")) ob_start();
header("Cache-Control: max-age=(3600*24*7*31)"); 
$expires = date("r",time()+(3600*24*7*31))." GMT";
header("Expires: $expires"); 
header("Last-Modified: " . gmdate("D, d M Y H:i:s",filemtime($_SERVER["SCRIPT_FILENAME"])) . " GMT");
header('Content-type: image/jpeg');
 
if(isset($_GET['src'])){$source = $_GET['src'];}else{$source=null;}

    if($source != null){$ext= strtolower(substr($source,(strlen($source)-3),3));}
    else{exit();}

switch(strtolower($ext)){
case "jpg" :
  $image_origine = imagecreatefromjpeg($source);
  break;
case "gif" :
  $image_origine = imagecreatefromgif($source);
  break;
case "tiff" :
  $image_origine = imagecreatefromtiff($source);
  break;
case "fif" :
  $image_origine = imagecreatefromfif($source);
  break;
case "ief" :
  $image_origine = imagecreatefromief($source);
  break;
case "bmp" :
  $image_origine = imagecreatefromwbmp ($source);
  break;
default :
  $image_origine = imagecreatefrompng($source);
  break;
}
include("reflection.frg.php");

  $largeur_mini=180;
  $largeur_origine = imagesx($image_origine);
  $hauteur_origine = imagesy($image_origine);
  $hauteur_mini = $hauteur_origine * $largeur_mini /   $largeur_origine;

  $image_reflechis = reflection($image_origine,$largeur_mini,$hauteur_mini);
//voila l'effet, maintenant copier-coller

  $image_finale = imagecreatetruecolor($largeur_mini, $hauteur_mini*1.3);
  ImageCopyResampled($image_finale, $image_reflechis, 0, $hauteur_mini*0.8, 0, 0, imagesx ($image_reflechis), imagesy ($image_reflechis), imagesx ($image_reflechis), imagesy ($image_reflechis)); 
  ImageCopyResampled($image_finale, $image_origine, 0, 0, 0, 0,   $largeur_mini, $hauteur_mini, imagesx($image_origine), imagesy($image_origine) );

//et on l'affiche

  imagejpeg($image_finale);
  imagedestroy($image_finale);
header("Content-Length: ".ob_get_length());
ob_end_flush();
?>

Codes Sources

A voir également

Ajouter un commentaire Commentaires
hugopise Messages postés 1 Date d'inscription vendredi 21 novembre 2008 Statut Membre Dernière intervention 3 août 2010
3 août 2010 à 20:26
"les évidences des uns sont les découvertes des autres"

peux-tu décomposer clairement et sans lacune d'étape
tes consignes d'installation.

merci
legral Messages postés 4 Date d'inscription dimanche 18 juin 2006 Statut Membre Dernière intervention 24 août 2010
28 juil. 2010 à 12:06
merci pour les précisions. Bonne continuation dans tes projets.
Et un merci en general pour tous les contributeurs
zulrigh Messages postés 24 Date d'inscription samedi 10 janvier 2009 Statut Membre Dernière intervention 7 juin 2014
27 juil. 2010 à 14:56
l'exemple de la photo est plutot parlante !!!

include("reflection.frg.php");

c'est l'include qu'il faut faire, avec le programme 'reflection.frg.php'

le code GD est un code spéciale pour php qui utilise la librairie GD justement; on peut voir si il est installer sur le server en faisant un petit phpinfos(); voir :

echo "Vous avez PHP ".phpversion();
$gd_info = gd_info();
if(!$gd_info)
die("
La librairie GD n'est pas installée !");

echo "
Vous avez GD {$gd_info['GD Version']}";

un éxemple d'utilisation de cet librairie est la fonction ImageCopyResampled qui copie et colle une image ....

En gros, gd est un MSPaint pour php ... lol

j'espere avoir était clair !
legral Messages postés 4 Date d'inscription dimanche 18 juin 2006 Statut Membre Dernière intervention 24 août 2010
27 juil. 2010 à 14:37
Peut tu précisez la méthodologie d'intallation du programme.

"vous faite un include de ce programme,"
--> je suppose que c'est un ftp des 2 fichiers

vous rajouter la fonction dans votre code GD ;
--> Ou ce situe ce "code GD"

un petit copier - coller avec ImageCopyResampled ; et voila !!
-->"ImageCopyResampled " : kesako?

Merci a toi, l'idée de ton code est interressante.
Si en plus tu pouvais mettre un lien en exemple ce serais le top.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.