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.
imagesettile
(PHP 4 >= 4.0.6, PHP 5)
imagesettile — Resmi doldurmak için döşemeyi etkin kılar
Açıklama
$image
, resource $karo
)
imagesettile() işlevi, imagefill()
ve imagefilledpolygon() gibi resim doldurma işlevleri
tarafından özel IMG_COLOR_TILED rengiyle doldurulmak
üzere resim döşemeyi etkin kılar.
Bir karo, resim alanını doldurmak üzere yinelenen bir resim karesidir. Karo olarak herhangi bir GD resmi kullanılabilir ve karo resmine imagecolortransparent() ile şeffaf renk indisi atanabilir. Bir karo, döşeneceği alanın belli parçaları parlak olacak şekilde oluşturulabilir.
Bilginize:
Bir karo ile işiniz bittiğinde özel bir işlem yapmanız gerekmez, fakat eğer karo resmini silerseniz, yeni bir karo resmi oluşturana kadar
IMG_COLOR_TILEDrengini kullanmamalısınız!
Değiştirgeler
-
resim -
imagecreatetruecolor() gibi bir resim oluşturma işlevinden dönen bir resim verisi.
-
karo -
Bir karo olarak kullanılacak resim özkaynağı.
Dönen Değerler
Başarı durumunda TRUE, başarısızlık durumunda FALSE döner.
Örnekler
Örnek 1 - imagesettile() örneği
<?php
// Bir resim yükleyelim
$zend = imagecreatefromgif('./zend.gif');
// 200x200 bir resim oluşturalım
$im = imagecreatetruecolor(200, 200);
// Döşemeyi etkin kılalım
imagesettile($im, $zend);
// Yüklediğimiz resmin döşenmesini sağlayalım
imagefilledrectangle($im, 0, 0, 199, 199, IMG_COLOR_TILED);
// Resmi tarayıcıya gönderelim
header('Content-Type: image/png');
imagepng($im);
imagedestroy($im);
imagedestroy($zend);
?>
Yukarıdaki örnek şuna benzer bir çıktı üretir:
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
