Şeffaflık / Alpha arka plan ile PHP GD Metin

1 Cevap php

tamam yani benim metin kısmen saydam resmin üzerine koydu alma ile ilgili bir sorun yaşıyorsanız im. i metin sağlam olmak istiyorum, ama metin sorunun metin birinin şeffaf bir arka plan miras olduğunu, i var ki, katı olmak bitti saydam olması görüntünün arka kısmını ve bir kısmını istiyorum Bir önceki tabakalar. Burada i gibi bakmak istiyorum ne çıktı bir örnek, ve bu çıkış altında kodu, ve. koyu gri arasında görüntünün çevresindeki ışık sınır şeffaf ama başka bir şey, özellikle metin olmalıdır böylece görüntü açık gri arka plan üzerinde döşeme. Bu metin kendini ancak saydam metin blokların arka plan değil gibi görünmektedir. hangi gördüğünüz gibi çok arzu değildir. yardım lütfen, bu benim projeyi tamamlamak için yapmamışlar tek sorundur. :)

sonrası görüntüleri henüz, o yüzden bir örnek çıktı ve istenen sonucun imajına heres bir bağlantı (orig) olamaz:

enter görüntü açıklaması here

<?php

$img = imagecreatetruecolor(200, 50);

$imageX = imagesx($img);
$imageY = imagesy($img);

imagealphablending($img, false);
imagesavealpha($img, true);

$transparent = imagecolorallocatealpha($img, 255,255,255, 127);
$white = imagecolorallocate($img, 255,255,255);
$grey = imagecolorallocate($img, 127,127,127);
imagefilledrectangle($img, 0, 0, $imageX, $imageY, $grey);
imagefilledrectangle($img, 2, 2, $imageX-4, $imageY-4, $transparent);

$font = "./arialbd.ttf";
$fontSize = 12;
$text = "THIS IS A TEST";

$textDim = imagettfbbox($fontSize, 0, $font, $text);
$textX = $textDim[2] - $textDim[0];
$textY = $textDim[7] - $textDim[1];

$text_posX = ($imageX / 2) - ($textX / 2);
$text_posY = ($imageY / 2) - ($textY / 2);

imagefilledrectangle($img, 10, 10, $imageX-10, $imageY-10, $grey);
imagettftext($img, $fontSize, 0, $text_posX, $text_posY, $white, $font, $text);

header("Content-Type: image/png");
imagepng($img);

?>

1 Cevap

hah i üzerinde yeterince sert düşünmüyordu sanırım. çözüm görüntü üzerine metin döşeme önce geri imagealphablending çevirmek oldu.

<?php

$img = imagecreatetruecolor(200, 50);

$imageX = imagesx($img);
$imageY = imagesy($img);

imagealphablending($img, false);
imagesavealpha($img, true);

$transparent = imagecolorallocatealpha($img, 255,255,255, 127);
$white = imagecolorallocate($img, 255,255,255);
$grey = imagecolorallocate($img, 127,127,127);
imagefilledrectangle($img, 0, 0, $imageX, $imageY, $grey);
imagefilledrectangle($img, 2, 2, $imageX-4, $imageY-4, $transparent);

$font = "./arialbd.ttf";
$fontSize = 12;
$text = "THIS IS A TEST";

$textDim = imagettfbbox($fontSize, 0, $font, $text);
$textX = $textDim[2] - $textDim[0];
$textY = $textDim[7] - $textDim[1];

$text_posX = ($imageX / 2) - ($textX / 2);
$text_posY = ($imageY / 2) - ($textY / 2);

imagefilledrectangle($img, 10, 10, $imageX-10, $imageY-10, $grey);
imagealphablending($img, true);
imagettftext($img, $fontSize, 0, $text_posX, $text_posY, $white, $font, $text);

header("Content-Type: image/png");
imagepng($img);

?>