PHP Conference Nagoya 2025

Imagick::textureImage

(PECL imagick 2, PECL imagick 3)

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

説明

Imagick::textureImage(Imagick $texture_wand): Imagick

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

パラメータ

texture_wand

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

戻り値

テクスチャ画像を繰り返し適用した新しい Imagick オブジェクトを返します。

エラー / 例外

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

例1 Imagick::textureImage()

<?php
function textureImage($imagePath) {
$image = new \Imagick();
$image->newImage(640, 480, 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

User Contributed Notes 2 notes

up
6
Dirk
10 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
2
truthseekercz at email dot cz
14 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