Imagick
在线手册:中文  英文

Imagick::clone

(PECL imagick 2.0.0)

Imagick::cloneMakes an exact copy of the Imagick object

说明

Imagick Imagick::clone ( void )

Makes an exact copy of the Imagick object.

Warning

This function has been DEPRECATED as of imagick 3.1.0 in favour of using the clone keyword.

范例

Example #1 Imagick object cloning in different versions of imagick

<?php
// Cloning an Imagick object in imagick 2.x and 3.0:
$newImage $image->clone();

// Cloning an Imagick object from 3.1.0 on:
$newImage = clone $image;
?>

返回值

A copy of the Imagick object is returned.

更新日志

版本 说明
3.1.0 The method was deprecated in favour of the clone keyword.


Imagick
在线手册:中文  英文

用户评论:

DJ Mike (2011-07-21 18:50:54)

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,,$offset0$text );
   
$frame->annotateImage $draw,,$offset0$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,,$offset0$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");
?>

bryan (2008-08-13 11:58:30)

For making thumbnails. Try this:

<?php

$im 
= new Imagick("image.jpg");
$im->thumbnailImage(100);
$im->writeImage("thumb_image.jpg");

?>

waage (2008-01-30 03:00:48)

This is great to use to make thumbnails

<?php

$im 
= new Imagick("image.jpg");

$thumb $im->clone();
$thumb->thumbnailImage(100);
$thumb->writeImage("thumb_image.jpg");

?>

易百教程