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

Soyez le premier à donner votre avis sur cette source.

Vue 5 477 fois - Téléchargée 691 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
-
"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
-
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
-
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
-
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.