文字

ImagickDraw::setGravity

(PECL imagick 2.0.0)

ImagickDraw::setGravitySets the text placement gravity

说明

bool ImagickDraw::setGravity ( int $gravity )
Warning

本函数还未编写文档,仅有参数列表。

Sets the text placement gravity to use when annotating with text.

参数

gravity

GRAVITY_ constant

返回值

没有返回值。

范例

Example #1 ImagickDraw::setGravity()

<?php
function  setGravity ( $fillColor $strokeColor $backgroundColor ) {

    
$draw  = new \ ImagickDraw ();
    
$draw -> setStrokeColor ( $strokeColor );
    
$draw -> setFillColor ( $fillColor );
    
$draw -> setStrokeWidth ( 1 );
    
$draw -> setFontSize ( 24 );

    
$gravitySettings  = array(
        \
Imagick :: GRAVITY_NORTHWEST  =>  'NorthWest' ,
        \
Imagick :: GRAVITY_NORTH  =>  'North' ,
        \
Imagick :: GRAVITY_NORTHEAST  =>  'NorthEast' ,
        \
Imagick :: GRAVITY_WEST  =>  'West' ,
        \
Imagick :: GRAVITY_CENTER  =>  'Centre' ,
        \
Imagick :: GRAVITY_SOUTHWEST  =>  'SouthWest' ,
        \
Imagick :: GRAVITY_SOUTH  =>  'South' ,
        \
Imagick :: GRAVITY_SOUTHEAST  =>  'SouthEast' ,
        \
Imagick :: GRAVITY_EAST  =>  'East'
    
);

    
$draw -> setFont ( "../fonts/Arial.ttf" );

    foreach (
$gravitySettings  as  $type  =>  $description ) {
        
$draw -> setGravity ( $type );
        
$draw -> annotation ( 50 50 '"'  $description  '"' );
    }

    
$imagick  = new \ Imagick ();
    
$imagick -> newImage ( 500 500 $backgroundColor );
    
$imagick -> setImageFormat ( "png" );
    
$imagick -> drawImage ( $draw );

    
header ( "Content-Type: image/png" );
    echo 
$imagick -> getImageBlob ();
}

?>

用户评论:

[#1] bcre8ve at gmail dot com [2013-09-13 14:15:46]

It appears that the GRAVITY constants have an integer equivalent:
NORTHWEST = 1
NORTH = 2
NORTHEAST = 3
WEST = 4 
CENTER = 5
EAST = 6
SOUTHWEST = 7
SOUTH = 8
SOUTHEAST = 9

[#2] alan at ridersite dot org [2007-08-28 07:51:21]

Gravity constants are very useful as they can save having to calculate the placement of variable text strings and font sizes.

For example: 
$draw->setGravity (Imagick::GRAVITY_CENTER);
$image->annotateImage($draw, 0, 0, 0, 'The quick brown fox jumps over the lazy dog');

Will horizontally and vertically center the text string.

Note, there are several gravity constants available. See, Constants ?? Imagick class constants

上一篇: 下一篇: