PHP 8.4.1 Released!

imagesettile

(PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8)

imagesettileModifie l'image utilisée pour le carrelage

Description

imagesettile(GdImage $image, GdImage $tile): bool

imagesettile() remplace l'image de pavement courante par l'image tile, à utiliser dans tous les remplissages (comme avec les fonctions imagefill() et imagefilledpolygon()) lors des remplissages avec l'option IMG_COLOR_TILED.

Une image de carrelage est une image utilisée pour remplir une zone, de manière répétitive. N'importe quelle image GD peut servir d'image de remplissage. L'utilisation de la couleur transparente (gérée avec la fonction imagecolortransparent()) permet à certaines zones d'apparaître à travers le carrelage.

Attention

Vous n'avez rien à faire lorsque vous en avez terminé avec une brosse, mais si vous détruisez l'image de brosse (ou laissez PHP le détruire), vous ne DEVEZ plus utiliser l'option IMG_COLOR_TILED des fonctions imagefill() et imagefilledpolygon(), avant d'avoir créé une nouvelle brosse.

Liste de paramètres

image

Un objet GdImage, retournée par une des fonctions de création d'images, comme imagecreatetruecolor().

tile

L'objet' de l'image à utiliser en tant que carrelage.

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.

Historique

Version Description
8.0.0 image et tile attendent désormais des instances de GdImage ; auparavant, des resources étaient attendues.

Exemples

Exemple #1 Exemple avec imagesettile()

<?php
// Chargement d'une image externe
$zend = imagecreatefromgif('./zend.gif');

// Création d'une image de 200x200 pixels
$im = imagecreatetruecolor(200, 200);

// Définition du carrelage
imagesettile($im, $zend);

// Répétition de l'image
imagefilledrectangle($im, 0, 0, 199, 199, IMG_COLOR_TILED);

// Affichage vers le navigateur
header('Content-Type: image/png');

imagepng($im);
imagedestroy($im);
imagedestroy($zend);
?>

Résultat de l'exemple ci-dessus est similaire à :

Affichage de l'exemple : imagesettile()

add a note

User Contributed Notes 2 notes

up
4
aquilo at xtram dot net
20 years ago
There is very little information about this function so I thought I'd add a few notes I found while trying to get this

working.

First make sure your version of PHP is above 4.3.2 I spent an hour searching goggles 13000+ mirrors of this same page and

finally found the info I needed at AltaVista, there is a bug in PHP 4.3.2 that makes this none functional.

if your creating the base image you need to create it with imageCreateTrueColor() if your using a PNG with transparency, I

found even nullifying the PNG's transparency with GD doesn't work. the tiling PNG has to be created without transparency to work with imageCreate(). but from what I've seen imageCreateFromXXX() can use transparent and nonetransparent PNG's.

here is an example.
<?php
$diagramWidth
= 300;
$diagramHeight = 50;

$image = imageCreateTrueColor ($diagramWidth, $diagramHeight);
$imagebg = imageCreateFromPNG ('tile.png'); // transparent PNG

imageSetTile ($image, $imagebg);
imageFilledRectangle ($image, 0, 0, $diagramWidth, $diagramHeight, IMG_COLOR_TILED);

$textcolor1 = imageColorAllocate ($image, 80, 80, 80);
$textcolor2 = imageColorAllocate ($image, 255, 255, 255);

imageString ($image, 3, 10, 20, 'Transparent PNG Tile Test...', $textcolor1);
imageString ($image, 3, 9, 19, 'Transparent PNG Tile Test...', $textcolor2);

Header("Content-type: image/png");
imagePNG ($image);

imagedestroy ($image);
imagedestroy ($imagebg);
?>

hope this helps someone else!
Aquilo
up
0
onion at ooer dot com
19 years ago
If you're using a tile image that has some form of transparency you'll need to make sure your destination image is set to use alpha blending. By default it will be, but if for any reason you've changed it you'll need to do:

imagealphablending($image,true);

before any operation using IMG_COLOR_TILED.
To Top