PHP Doku:: Set the tile image for filling - function.imagesettile.html

Verlauf / Chronik / History: (1) anzeigen

Sie sind hier:
Doku-StartseitePHP-HandbuchFunktionsreferenzBildverarbeitung und -generierungBildbearbeitung und GDGD- und Image-Funktionenimagesettile

Ein Service von Reinhard Neidl - Webprogrammierung.

GD- und Image-Funktionen

<<imagesetthickness

imagestring>>

imagesettile

(PHP 4 >= 4.0.6, PHP 5)

imagesettileSet the tile image for filling

Beschreibung

bool imagesettile ( resource $image , resource $tile )

imagesettile() sets the tile image to be used by all region filling functions (such as imagefill() and imagefilledpolygon()) when filling with the special color IMG_COLOR_TILED.

A tile is an image used to fill an area with a repeated pattern. Any GD image can be used as a tile, and by setting the transparent color index of the tile image with imagecolortransparent(), a tile allows certain parts of the underlying area to shine through can be created.

Hinweis:

You need not take special action when you are finished with a tile, but if you destroy the tile image, you must not use the IMG_COLOR_TILED color until you have set a new tile image!

Parameter-Liste

image

Eine von den verschiedenen Erzeugungsfunktionen wie imagecreatetruecolor() gelieferte Grafikressource.

tile

The image resource to be used as a tile.

Rückgabewerte

Gibt bei Erfolg TRUE zurück. Im Fehlerfall wird FALSE zurückgegeben.

Beispiele

Beispiel #1 imagesettile() example

<?php
// Load an external image
$zend imagecreatefromgif('./zend.gif');

// Create a 200x200 image
$im imagecreatetruecolor(200200);

// Set the tile
imagesettile($im$zend);

// Make the image repeat
imagefilledrectangle($im00199199IMG_COLOR_TILED);

// Output image to the browser
header('Content-Type: image/png');

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

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Output of example : imagesettile()


2 BenutzerBeiträge:
- Beiträge aktualisieren...
onion at ooer dot com
7.11.2005 21:31
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.
aquilo at xtram dot net
1.06.2004 15:30
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, 39, 19, 'Transparent PNG Tile Test...', $textcolor2);

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

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

hope this helps someone else!
Aquilo



PHP Powered Diese Seite bei php.net
The PHP manual text and comments are covered by the Creative Commons Attribution 3.0 License © the PHP Documentation Group - Impressum - mail("TO:Reinhard Neidl",...)