Beste leden,

Ik creeƫr een plaatje met de gd library van php vanaf een bestaande png met transparante achtergrond, na het generen heeft het plaatje geen transparante achtergron meer maar een gekleurde achtergrond, hoe komt dit?

<?php
error_reporting(E_ALL + E_STRICT);
ini_set( "display_errors", 1);

class Generate {

private $button;

public function __construct($font,$size,$image,$color,$text,$align){

$this->constructImage($font,$size,$image,$color,$text,$align);
return $this->button;
}

private function constructImage($font,$size,$image,$color,$text,$align){

$button = imagecreatefrompng($image);
$boundingbox = imagettfbbox($size,0,$font,$text);
switch ($align) {
case "left":
$x = 20;
break;
case "center":
$x = (imagesx($button)-($boundingbox[2]))/2;
break;
case "right":
$x = imagesx($button) -($boundingbox[2])-10;
break;
default:
break;
}
$y = imagesy($button) - (imagesy($button)-$size)/2;
$col = imagecolorallocate($button,hexdec($color[1]).hexdec($color[2]),hexdec($color[3]).hexdec($color[4]),hexdec($color[5]).hexdec($color[6]));

imagettftext($button,$size,0,$x,$y,$col,$font,$text);
header("Content-type: image/png");
header('Content-Disposition: attachment; filename="button.png"');
readfile($this->button = imagepng($button));
imagedestroy($button);
}
}

?>

EDIT: Live Demo
Perry Saarloos op 16/07/2010 09:52:53

Ik weet dat wel !

Als je een programma net als PSP heb kun je png opslaan, met alfa transpiratie hier door word heel het plaatje doorzichtig ;)Althans aleen de witte achtergrond waarom het ging ... Heb het zelf uit gevonden als je zo'n plaatje doorichtig wil kan ik het voor je doen schild je een hoop werk...

Laat het me maar weten !


Lees de eerste regel eens.
Hij heeft al een transparant plaatje.


Ik vind [php]imagick[/php] beter werken dan GD. Betere uitkomsten, en ondersteund meer.
Is ook nog eens classes.
Waarom zijn jullie een topic uit 2007 aan het bumpen?
Mark Coenen op 16/07/2010 10:00:31

Waarom zijn jullie een topic uit 2007 aan het bumpen?


Omdat ik daar niet eens op lette (want ik vind dat tegenwoordig niet duidelijk staan), en iemand kan hetzelfde probleem hebben. Die kan dan ook baad hebben aan imagemagick.

Reageren