Imagick::textureImage

(PECL imagick 2.0.0)

Imagick::textureImageテクスチャ画像をタイル状に並べる

説明

Imagick Imagick::textureImage ( Imagick $texture_wand )

テクスチャ画像をタイル状に繰り返し並べます。

パラメータ

texture_wand

テクスチャ画像として使用する Imagick オブジェクト

返り値

Returns a new Imagick object that has the repeated texture applied.

エラー / 例外

エラー時に ImagickException をスローします。

例1 Imagick::textureImage()

<?php
function textureImage($imagePath) {
    
$image = new \Imagick();
    
$image->newImage(640480, new \ImagickPixel('pink'));
    
$image->setImageFormat("jpg");
    
$texture = new \Imagick(realpath($imagePath));
    
$texture->scaleimage($image->getimagewidth() / 4$image->getimageheight() / 4);
    
$image $image->textureImage($texture);
    
header("Content-Type: image/jpg");
    echo 
$image;
}

?>

add a note add a note

User Contributed Notes 2 notes

up
3
Dirk
3 years ago
This method doesn't actually return TRUE on success, it returns an Imagick with the texture applied, but the original Imagick object is not modified. As per the other examples on here, you need to use the result of textureImage call as your new tiled image.
up
1
truthseekercz at email dot cz
7 years ago
<?php

$image
= new Imagick();
$image->newImage(500, 500, new ImagickPixel('red'));
$image->setImageFormat("png");
$type=$image->getFormat();
header("Content-type: $type");

$texture = new Imagick();
$texture->readImage('texture.png');
$image = $image->textureImage($texture);

echo
$image;

?>

This works for me, however, I give no guarantees that the above example is the proper usage of this function.
To Top