note 105009 modified in function.imagick-clone by danbrown

From: Date: Mon, 25 Jul 2011 12:32:14 +0000
Subject: note 105009 modified in function.imagick-clone by danbrown
References: 1  Groups: php.notes 
Request: Send a blank email to php-notes+get-181844@lists.php.net to get a copy of this message
Create a banner with animated glowing text <?php $text = "DJ Mike"; $font = "lokicola.ttf"; $fontsize = 100; $fontcolor = "#ffff88"; $file = "banner.gif"; # outfile $glow_radius = 3; # Three glow colors $glow = array( "#ff0000", "#ff8800", "#ffff00" ); $delay = 15; # moves text down $offset = 12; # make a black pallete $pallete = new Imagick; $pallete->newimage(375,140, "#000000"); # set pallet format to gif $pallete->setimageformat("gif"); # make a draw object with settings $draw = new imagickdraw(); $draw->setgravity(imagick::GRAVITY_CENTER); $draw->setfont("$font"); $draw->setfontsize($fontsize); # clone pallete to make 3 blank frames $frame_0 = $pallete->clone(); $frame_1 = $pallete->clone(); $frame_2 = $pallete->clone(); # put them in an array $frames = array($frame_0, $frame_1, $frame_2); # loop through frames, double glow radius each time, annotate foreach( $frames as $frame) { # Loop through glow colors, annotate and blur foreach( $glow as $color) { $draw->setfillcolor("$color"); $frame->annotateImage ( $draw,0 ,$offset, 0, $text ); $frame->annotateImage ( $draw,0 ,$offset, 0, $text ); $frame->BlurImage( $glow_radius, $glow_radius ); } # top layer of text over glow $draw->setfillcolor("$fontcolor"); # center annotate on top of offset annotates $frame->annotateImage ( $draw,0 ,$offset, 0, $text ); # double glow radius for next loop $glow_radius = $glow_radius*2; } # add frames $frame_0->addImage($frame_1); $frame_0->addImage($frame_2); # slow it down a little $frame_0->setImageDelay("$delay"); # write frames $frame_0->writeimages( "$file", FALSE); # write animation $frame_0->writeimages( "$file", TRUE); # header("Location:banner.gif"); ?> --was-- Create a banner with animated glowing text <?php $text = "DJ Mike"; $font = "lokicola.ttf"; $fontsize = 100; $fontcolor = "#ffff88"; $file = "banner.gif"; # outfile $glow_radius = 3; # Three glow colors $glow = array( "#ff0000", "#ff8800", "#ffff00" ); $delay = 15; # moves text down $offset = 12; # make a black pallete $pallete = new Imagick; $pallete->newimage(375,140, "#000000"); # set pallet format to gif $pallete->setimageformat("gif"); # make a draw object with settings $draw = new imagickdraw(); $draw->setgravity(imagick::GRAVITY_CENTER); $draw->setfont("$font"); $draw->setfontsize($fontsize); # clone pallete to make 3 blank frames $frame_0 = $pallete->clone(); $frame_1 = $pallete->clone(); $frame_2 = $pallete->clone(); # put them in an array $frames = array($frame_0, $frame_1, $frame_2); # loop through frames, double glow radius each time, annotate foreach( $frames as $frame) { # Loop through glow colors, annotate and blur foreach( $glow as $color) { $draw->setfillcolor("$color"); $frame->annotateImage ( $draw,0 ,$offset, 0, $text ); $frame->annotateImage ( $draw,0 ,$offset, 0, $text ); $frame->BlurImage( $glow_radius, $glow_radius ); } # top layer of text over glow $draw->setfillcolor("$fontcolor"); # center annotate on top of offset annotates $frame->annotateImage ( $draw,0 ,$offset, 0, $text ); # double glow radius for next loop $glow_radius = $glow_radius*2; } # add frames $frame_0->addImage($frame_1); $frame_0->addImage($frame_2); # slow it down a little $frame_0->setImageDelay("$delay"); # write frames $frame_0->writeimages( "$file", FALSE); # write animation $frame_0->writeimages( "$file", TRUE); # header("Location:banner.gif"); ?> http://eclecticdjs.com/mike/tutorials/php/imagemagick/examples_09/clone.php http://php.net/manual/en/function.imagick-clone.php

« previous php.notes (#181844) next »