Changeset 32033 in spip-zone


Ignore:
Timestamp:
Oct 11, 2009, 7:20:25 PM (10 years ago)
Author:
prigent.yohann@…
Message:

Un début de filtre image pour rfléchir une image, seul probleme, il reflechit pas les pngs encore (et c'est principalement l'utilisation qu'on en demande

File:
1 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/fonctions_images/fonctions_images_fonctions.php

    r31945 r32033  
    11891189}
    11901190
     1191function image_reflechir($im, $hauteur=45){
     1192        include_spip("inc/filtres_images");
     1193        $image = image_valeurs_trans($im, "relechir-$hauteur");
     1194        if (!$image) return("");
     1195    $x_i = $image["largeur"];
     1196    $y_i = $image["hauteur"];
     1197    $im = $image["fichier"];
     1198    $dest = $image["fichier_dest"];
     1199    $creer = $image["creer"];
     1200        if($creer) {
     1201                if($hauteur > $y_i)
     1202                        $hauteur = $y_i;
     1203                $im = $image["fonction_imagecreatefrom"]($im);
     1204                $resultat = imagecreatetruecolor($x_i, $y_i + $hauteur);
     1205                $gradientHeight = $hauteur;
     1206                // Create new blank image with sizes.
     1207                $background = imagecreatetruecolor($x_i, $gradientHeight);
     1208                $gradientColor = "255 255 255"; //White
     1209                $gradparts = explode(" ",$gradientColor); // get the parts of the  colour (RRR,GGG,BBB)
     1210                $dividerHeight = 1;
     1211                $gradient_y_startpoint = $dividerHeight;
     1212                $gdGradientColor=ImageColorAllocate($background,$gradparts[0],$gradparts[1],$gradparts[2]);
     1213                $newImage = imagecreatetruecolor($x_i, $y_i);
     1214                for ($x = 0; $x < $x_i; $x++) {
     1215                for ($y = 0; $y < $y_i; $y++) {
     1216                        imagecopy($newImage, $im, $x, $y_i - $y - 1, $x, $y, 1, 1);
     1217                }
     1218                }
     1219                // Add it to the blank background image
     1220                imagecopymerge ($background, $newImage, 0, 0, 0, 0, $x_i, $y_i, 100);
     1221                //create from a the image so we can use fade out.
     1222                $gradient_line = imagecreatetruecolor($x_i, 1);
     1223                // Next we draw a GD line into our gradient_line
     1224                imageline ($gradient_line, 0, 0, $x_i, 0, $gdGradientColor);
     1225                $i = 0;
     1226                $transparency = 30; //from 0 - 100
     1227                while ($i < $gradientHeight) //create line by line changing as we go
     1228                {
     1229                imagecopymerge ($background, $gradient_line, 0,$gradient_y_startpoint, 0, 0, $x_i, 1, $transparency);
     1230                ++$i;
     1231                ++$gradient_y_startpoint;   
     1232                        if ($transparency == 100) {
     1233                                $transparency = 100;
     1234                        }
     1235                        else {
     1236                                // this will determing the height of the
     1237                                //reflection. The higher the number, the smaller the reflection.
     1238                                //1 being the lowest(highest reflection)
     1239                                $transparency = $transparency + 1;
     1240                        }
     1241                }
     1242                // Set the thickness of the line we're about to draw
     1243                imagesetthickness ($background, $dividerHeight);
     1244                // Draw the line - me do not likey the liney
     1245                imageline ($background, 0, 0, $imgName_w, 0, $gdGradientColor);
     1246                imagecopymerge ($resultat, $im, 0, 0, 0, 0, $x_i, $y_i, 100);
     1247                imagecopymerge ($resultat, $background, 0, $y_i, 0, 0, $x_i, $y_i, 100);
     1248                imagedestroy($gradient_line);
     1249                imagedestroy($newImage);
     1250                $image["fonction_image"]($resultat, "$dest");
     1251        }
     1252        return "<img src='$dest'$tags />";
     1253}
     1254
    11911255?>
Note: See TracChangeset for help on using the changeset viewer.