International PHP Conference 2015

ImagickDraw::setGravity

(PECL imagick 2.0.0)

ImagickDraw::setGravitySets the text placement gravity

Description

bool ImagickDraw::setGravity ( int $gravity )
Warning

This function is currently not documented; only its argument list is available.

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

Parameters

gravity

GRAVITY_ constant

Return Values

No value is returned.

Examples

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(5050'"' $description '"');
    }

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

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

?>

add a note add a note

User Contributed Notes 2 notes

up
1
bcre8ve at gmail dot com
1 year ago
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
up
1
alan at ridersite dot org
8 years ago
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
To Top