PHP generiertes PNG problem

PHP generiertes PNG problem

am 27.06.2006 08:33:41 von Neugi

Hi,

ich habe folgenden code erstellt:

header("Content-type: image/png");
$img_foto = "foto.png";
$img_bild = "projekte/testhaus.jpg";
$winkel = 7;
$font = '../font/rabiohead.ttf';
$text1 = "Hi";
$text2 = "Text2";
$text3 = "Text3";

$img = imagecreatefrompng($img_foto);
$foto = imagecreatefromjpeg($img_bild);

$trans = imagecolorallocate($foto, 255, 255, 255);
$white = imagecolorallocate($img, 255, 255, 255);

$foto = imagerotate($foto, $winkel, $trans);

$bild_x = imagesx($foto);
$bild_y = imagesy($foto);
$img_x_y = getimagesize($img_foto);

imagecolortransparent($foto, $trans);

imagecopymerge($img, $foto, -3, 28, 0, 0, $bild_x, $bild_y, 100);
imagettftext($img, 20, $winkel, 20, 330, $grey, $font, $text1);

imagecolortransparent($img, $white);

imagepng($img);
imagedestroy($img);
imagedestroy($foto);
?>

im firefox funktioniert es ohne probleme. das erzeugt png ist im
hintergrund transparent. aber in ie nicht, trotz der fixes die es gibt,
hab diesen
angewendet->http://homepage.ntlworld.com/bobosola/pnghowto.h tm

woran kann das liegen?

mfg

Re: PHP generiertes PNG problem

am 27.06.2006 08:49:57 von dev-null-use-reply-adress

Irgendwer oder -was schrieb:

> ich habe folgenden code erstellt:

[PNG mit transparenter Farbe erzeugen]

> im firefox funktioniert es ohne probleme. das erzeugt png ist im
> hintergrund transparent.

Dann scheint es ziemlich sicher, daß Dein PHP-Code OK ist
und die Grafik wie gewünscht erstellt wurde. Also hast
Du kein PHP-Problem.

> aber in ie nicht, trotz der fixes die es gibt,
> hab diesen
> angewendet->http://homepage.ntlworld.com/bobosola/pnghowto.h tm

Diese Lösung basiert auf Javascript. Das ist nicht Thema
dieser Newsgroup.


Gruß
JPM

Re: PHP generiertes PNG problem

am 27.06.2006 09:14:19 von Markus Bemmelen

Am 27.06.2006 08:33 gab Neugi folgende Aussage(n) zum Besten:
> Hi,

Tach!

[snip]

> im firefox funktioniert es ohne probleme. das erzeugt png ist im
> hintergrund transparent. aber in ie nicht, trotz der fixes die es gibt,
> hab diesen
> angewendet->http://homepage.ntlworld.com/bobosola/pnghowto.h tm
>
> woran kann das liegen?

Am Internet Explorer: http://support.microsoft.com/kb/294714/de

Gruß, markus

Re: PHP generiertes PNG problem

am 27.06.2006 13:21:02 von Neugi

Hi, ist mir klar das es am ie liegt deswegen auch der versucht mit dem
work around.

andere frage: wenn ich auf gif umstellen will hab ich auch den weißen
rand. was muss ich an meinem code ändern das es vielleicht auch mit
gif geht?

mfg

Re: PHP generiertes PNG problem

am 27.06.2006 13:29:47 von dev-null-use-reply-adress

Irgendwer oder -was schrieb:

[Nullquote]

> Hi, ist mir klar das es am ie liegt deswegen auch der versucht mit dem
> work around.
>
> andere frage: wenn ich auf gif umstellen will hab ich auch den weißen
> rand. was muss ich an meinem code ändern das es vielleicht auch mit
> gif geht?

Die Frage kann jetzt nicht Dein Ernst sein. ;-)
Vielleicht einfach imagegif() anstelle von imagepng() verwenden?


Gruß
JPM

Re: PHP generiertes PNG problem

am 27.06.2006 13:44:11 von Neugi

hab ich,

dann hab ich auch wieder den weißen rand. aber dann halt in ff und ie

wenns so einfach gewesen wäre dann hätte ich die fragen nicht
gestellt ;)

mfg

Re: PHP generiertes PNG problem

am 27.06.2006 13:45:40 von Neugi

hab jetzt auch noch mal das ganze online gestellt. damit ihr euch das
ansehen könnt, falls es einer nicht glaubt ;)

http://www.e-shop.at/euro/

gruz

Re: PHP generiertes PNG problem

am 27.06.2006 13:49:49 von Frank Schenk

Neugi wrote:
> hab jetzt auch noch mal das ganze online gestellt. damit ihr euch das
> ansehen könnt, falls es einer nicht glaubt ;)
>
> http://www.e-shop.at/euro/

Du solltest den Hintergrund transparent machen, das könnte helfen.


Frank

P.S.: Zur Seite sag ich besser nix, hast du die mal im FF angeschaut?

Re: PHP generiertes PNG problem

am 27.06.2006 14:01:18 von Neugi

Transparent mach ich sie doch-> imagecolortransparent($img, $white);

schein aber nciht zu funtkionieren. was soll ich anders schreiben.

mfg

PS: hab sie mir auch im ff angesehen. schaut genau so aus wie im ie.
aber das sollte ja jetzt mal nebensache sein.

Re: PHP generiertes PNG problem

am 27.06.2006 14:06:58 von Frank Schenk

Neugi wrote:
> Transparent mach ich sie doch-> imagecolortransparent($img, $white);
>
> schein aber nciht zu funtkionieren. was soll ich anders schreiben.

$trans = imagecolorallocate($foto, 255, 255, 255);
$white = imagecolorallocate($img, 255, 255, 255);

imagecolortransparent($foto, $trans);
imagecolortransparent($img, $white);

Reicht das als hint?

Du kopierst zwar die Transparenz mit imagecopymerge, überschreibst sie
dann aber mit white. Nimm 2 verschiedene Farben.

hth, Frank

Re: PHP generiertes PNG problem

am 27.06.2006 14:07:57 von Achim Peters

Frank Schenk wrote:
> Neugi wrote:
>> hab jetzt auch noch mal das ganze online gestellt. damit ihr euch das
>> ansehen könnt, falls es einer nicht glaubt ;)
>>
>> http://www.e-shop.at/euro/

> P.S.: Zur Seite sag ich besser nix, hast du die mal im FF angeschaut?

Die sieht bei mir mit FF 1.5.0.4 und IE 6.0.2900.2180... identisch aus.

Bye
Achim

Re: PHP generiertes PNG problem

am 27.06.2006 14:26:31 von Neugi

header("Content-type: image/gif");
$img_foto = "foto.png";
$img_bild = "projekte/testhaus.jpg";
$winkel = 7;
$font = '../font/rabiohead.ttf';
$text1 = "Hi";
$text2 = "Text2";
$text3 = "Text3";

$img = imagecreatefrompng($img_foto);
$foto = imagecreatefromjpeg($img_bild);

$trans = imagecolorallocate($foto, 200, 200, 200);
$white = imagecolorallocate($img, 255, 255, 255);

$foto = imagerotate($foto, $winkel, $trans);

imagecolortransparent($foto, $trans);
imagecolortransparent($img, $white);

$bild_x = imagesx($foto);
$bild_y = imagesy($foto);
$img_x_y = getimagesize($img_foto);

imagecopymerge($img, $foto, -3, 28, 0, 0, $bild_x, $bild_y, 100);
imagettftext($img, 20, $winkel, 20, 330, $grey, $font, $text1);

imagegif($img);
imagedestroy($img);
imagedestroy($foto);
//print_r($img_x_y);
?>

habs jetzt auf das umgeschrieben und bringt nichts. leider bin ich noch
nicht so sattel fest mit php und bild manipulation. :(

gruz

Re: PHP generiertes PNG problem

am 27.06.2006 14:51:09 von Ralf Zschemisch

Am Tue, 27 Jun 2006 05:01:18 -0700 schrieb
Neugi:
^--

Hallo,

> Transparent mach ich sie doch-> imagecolortransparent($img, $white);

Nach deinem Skript sill die Farbe
$white = imagecolorallocate($img, 255, 255, 255);

transpartent werden.

Dein Hintergrund ist allerdings

Rot 251
Grün 253
Blau 251

> schein aber nciht zu funtkionieren. was soll ich anders schreiben.

Am einfachsten erstellst du eine transparente Grafik
und kopierst dort dein jpg rein.

hth

r23

--
http://www.myoos.de/fraktal/zoom.php

Re: PHP generiertes PNG problem

am 28.06.2006 08:36:27 von Neugi

Ralf Zschemisch wrote:
> Am Tue, 27 Jun 2006 05:01:18 -0700 schrieb
> Am einfachsten erstellst du eine transparente Grafik
> und kopierst dort dein jpg rein.

die png hat ja schon eine transparenz ;) aber die ist nach dem
bearbeiten einfach weg.

gruz

Re: PHP generiertes PNG problem

am 28.06.2006 15:20:11 von Ralf Zschemisch

Am Tue, 27 Jun 2006 23:36:27 -0700 schrieb
Neugi:

^-- Bitte vollständigen Namen

>> Am Tue, 27 Jun 2006 05:01:18 -0700 schrieb
>> Am einfachsten erstellst du eine transparente Grafik
>> und kopierst dort dein jpg rein.
>
> die png hat ja schon eine transparenz ;)

Wenn dein "foto.png"
$img_foto = "foto.png";
transparent ist?

Warum machst du dann

$img = imagecreatefrompng($img_foto);
$white = imagecolorallocate($img, 255, 255, 255);
imagecolortransparent($img, $white);
?

Du kannst auch einfach ein Image erzeugen..


$size = 300;
$image = imagecreatetruecolor($size, $size);
$back = imagecolorallocate($image, 255, 255, 255);
$border = imagecolorallocate($image, 0, 0, 0);
imagefilledrectangle($image, 0, 0, $size - 1, $size - 1, $back);
imagerectangle($image, 0, 0, $size - 1, $size - 1, $border);
imagecolortransparent($image, $back);

hth

r23
--
http://www.myoos.de/fraktal/zoom.php