0

My php knowledge is very limited... so i searched, found and edited a script to write text on a png, but the transparency is not present:

<?php
$string = "username";
$string2 = "example.com";
$image = imageCreateFromPng("http://i.imgur.com/Y6hWkkW.png");
$cor = imagecolorallocate($image, 0, 0, 0);
imagestring($image,5,126,22,urldecode($string),$cor);
header('Content-type: image/png');
imagepng($image,NULL);

$stype = "png";

if ($stype = "png")
{
    // integer representation of the color black (rgb: 0,0,0)
    $background = imagecolorallocate($image, 0, 0, 0);
    // removing the black from the placeholder
    imagecolortransparent($image, $background);

    // turning off alpha blending (to ensure alpha channel information 
    // is preserved, rather than removed (blending with the rest of the 
    // image in the form of black))
    imagealphablending($image, false);

    // turning on alpha channel information saving (to ensure the full range 
    // of transparency is preserved)
    imagesavealpha($image, true);
}
?>

Live script here with the faulty result ideal image enter image description here

I have been searching the web and i couldn't find the solution for this If you can, please take the time to help me out

Thank you very much

Miguel
  • 310
  • 1
  • 5
  • 17
  • Please try this: http://stackoverflow.com/questions/2611852/imagecreatefrompng-makes-a-black-background-instead-of-transparent – Dávid Szabó Jun 18 '14 at 10:34
  • @newboyhun tried and updated the code, didnt worked though but thank you for your input – Miguel Jun 18 '14 at 10:42

1 Answers1

2

You need to 'enable' transparency.

$string = "username";
$string2 = "example.com";
$image = imageCreateFromPng("http://i.imgur.com/Y6hWkkW.png");
$cor = imagecolorallocate($image, 0, 0, 0);
$background = imagecolorallocate($image, 0, 0, 0);
imagecolortransparent($image, $background);
imagealphablending($image, false);
imagesavealpha($image, true);
imagestring($image,5,126,22,urldecode($string),$cor);
header('Content-type: image/png');
imagepng($image,NULL);
Dávid Szabó
  • 2,235
  • 2
  • 14
  • 26