php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2007

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 13.04.2007, 18:52  
Erfahrener Benutzer
 
Registriert seit: 07.11.2003
Beiträge: 526
Promaetheus
Standard problem bei verständnis mit bildmanipulation

ich habe eine frage. wenn ich ein truecolorimage erstelle bekomme ich es nicht hin dass ich denhintergrund transparent bekomme. ich habe 2 verschiedene ansätze probiert, die eigentlich funktionieren müssten (habe alles beachtet) jedoch tun sie es NICHT.

Version 1:
PHP-Code:
<?php
Header
("Content-Type: image/gif");  // bild mit browser ausgeben

$img ImageCreateTrueColor(200,50);  // erzeuge bild mit schwarzem hintergrund

$background ImageColorAllocate($img,0,0,0);  // setze hintergrund auf farbe $background
ImageColorTransparent($img$background);  // setze farbe $background als transparent

ImageGIF($img);
ImageDestroy($img);
?>
Version 2:
PHP-Code:
<?php
Header
("Content-Type: image/gif");  // bild mit browser ausgeben

$img ImageCreateTrueColor(200,50);  // erzeuge bild mit schwarzem hintergrund

$background ImageColorAllocate($img,0,0,0);  // setze hintergrund auf farbe $background
$col ImageColorAllocate($img,255,0,0);  // setze eine neue farbe
ImageFill($img0,0$col);  // bild mit neuer farbe füllen
ImageColorTransparent($img$col);  // die neue farbe als transparent setzen

ImageGIF($img);
ImageDestroy($img);
?>
wo habe ich denn da einen fehler? denn denkfehler sollte es ja nicht sein. es funktioniert übrigens auch mit png nicht.
__________________
mfg Alexander Haim
Promaetheus ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 15.04.2007, 00:04  
Gast
 
Beiträge: n/a
Standard

Ich will ja nichts sagen, aber bei mir funktionieren beide Versionen
 
Alt 15.04.2007, 11:07  
Erfahrener Benutzer
 
Registriert seit: 07.11.2003
Beiträge: 526
Promaetheus
Standard

sonderbar. dann muss ich meinen xampp mal durchchecken.

EDIT: bei meinem xampp passt eigentlich alles. wie kanns das geben?
phpinfo: php 4.4.0, gd 2.0.28, gifcreate enabled, gifread enabled.

bild wird schwarz dargestellt.
__________________
mfg Alexander Haim
Promaetheus ist offline  
Alt 15.04.2007, 23:43  
Erfahrener Benutzer
 
Registriert seit: 07.11.2003
Beiträge: 526
Promaetheus
Standard

@michigras: ich hab das jetzt auch auf meinem server probiert... funktioniert auch nicht. weiss nicht warum das bei dir funktioniert. kann ich ehrlich gesagt aber auch nicht ganz glauben.
Version 1 -> schwarzes bild
Version 2 -> rotes bild

und nix von transparenz.
__________________
mfg Alexander Haim
Promaetheus ist offline  
Alt 16.04.2007, 07:02  
CIX88
Gast
 
Beiträge: n/a
Standard

Ich würde auch generell erst die Fläche mit einer Farbe füllen, die dann als Transparent erklärt wird.
Oder mal mit imagecolorallocatealpha versuchen ...
 
Alt 16.04.2007, 10:36  
Erfahrener Benutzer
 
Registriert seit: 07.11.2003
Beiträge: 526
Promaetheus
Standard

@cix: im beispiel 1 hab ich das genauso gemacht: den automatisch schwarzen hintergrund habe ich mit ImageColorAllocate nochmals explizit gefärbt. und danach habe ich diese farbe auf transparent gesetzt. wäre doch alles konform, aber funktioniert nicht.

bezüglich ImageColorAllocateAlpha: es funktioniert auch nicht mit ICAA alleine, jedoch in kombination mit ICT, jedoch auch nur wenn bei ICAA vorher $alpha auf einen wert zwischen 1 und 127 gesetzt wird. jedoch ist hier auch kein unterschied zu sehen. also nix mit opacy. noch ein sonderbares phänomen: der text wird ja wie aus dem code ersichtlich ist als ROT ausgegeben. jedoch ist dies nur der fall wenn man bei ICAA eben den besagten wert zwischen 1 und 127 eingibt. wird 0 eingegeben, so wird ein schwarzes bild mit WEISSEM text ausgegeben.

mehr als sonderbar nicht? hier die ergebnisse online:
- ImageColorAllocateAlpha mit $alpha = 0
- ImageColorAllocateAlpha mit $alpha = 1
PHP-Code:
<?php
// TEST 3 - ImageColorAllocateAlpha
Header("Content-Type: image/gif");  // bild mit browser ausgeben

$img ImageCreateTrueColor(200,50);  // erzeuge bild mit schwarzem hintergrund

$background ImageColorAllocateAlpha($img,0,0,0,1);  // setze hintergrund auf farbe $background
ImageColorTransparent($img$background);  // setze farbe $background als transparent

// testtext erstellen
$textcolor ImageColorAllocate($img,255,0,0);
ImageString($img,1,0,0,'Das Bild existiert',$textcolor);

ImageGIF($img);
ImageDestroy($img);
?>
hier online zu sehen:
__________________
mfg Alexander Haim
Promaetheus ist offline  
Alt 16.04.2007, 10:53  
CIX88
Gast
 
Beiträge: n/a
Standard

Zitat:
@cix: im beispiel 1 hab ich das genauso gemacht:
Im Beispiel 1 hattest du nur eine Farbe definiert und mehr nicht.

PS:
GIF-Bilder gehen nur Transparent oder Nicht-Transparent, also 0 oder 100.
Alle anderen Zwischenwerte, wie bei dir mit 1, sind zwecklos.
Halbtransparenzen besser mit PNG testen.
 
Alt 16.04.2007, 11:00  
Erfahrener Benutzer
 
Registriert seit: 07.11.2003
Beiträge: 526
Promaetheus
Standard

ich habe eine farbe definiert. die erste definierte farbe wird automatisch als hintergrundfarbe des bildes gesetzt. (http://at2.php.net/manual/en/functio...orallocate.php auch zu sehen auf imagecolorallocatealpha beispiel 928, zeile 6 und 7)

da ich eh nur den hintergrund komplett transparent haben möchte ist das dann mit 1 auch ok. danke für den hinweis bezüglich des unterschiedes von gif/png.

aber ein wenig sonderbar bleibt die ganze sache meines erachtens nach schon, denn die beiden oben beschriebenen beispiele 1 und 2 müssten ja auch funktionieren. wie auch immer... sonderbar...
__________________
mfg Alexander Haim
Promaetheus ist offline  
Alt 16.04.2007, 11:55  
CIX88
Gast
 
Beiträge: n/a
Standard

Dein erstes Beispiel ist eigentlich auch nicht ganz richtig.
Bei einen GIF-Bild ist ImageCreateTrueColor etwas fehl am Platz, da GIF nur 256-Farben unterstützt.
Du erstellst praktisch ein 24-bit Bild und setzt es dann auf 256-Farben wieder zurück.
Und vielleicht ist dies der Knackpunkt.

Probier mal nur mit ImageCreate(), jedenfalls wenn du mit dem GIF-Format arbeiten willst.

EDIT:

Jo meine Vermutung:
http://www.cix88.de/cix_php/php_graf...parent_gif.php

Das 1.Bild ist transparent, das 2. Bild nicht
 
Alt 16.04.2007, 12:23  
Erfahrener Benutzer
 
Registriert seit: 07.11.2003
Beiträge: 526
Promaetheus
Standard

danke für den hinweis. somit stehe ich wohl vor einem problem. denn ich möchte mit ttf´s arbeiten. diese wirken aber bei der vorgehensweise mit imagecreate ausgefranst und unschön und mit imagecreatetruecolor werden sie schön dargestellt. auf png´s möchte ich verzichten, da es hier ja bekanntlicherweise darstellungsprobleme mit internet explorer 6 gibt.

so were ich wohl die variante mit ICTC und ICAA arbeiten müssen. unschön aber die einzige möglichkeit.
__________________
mfg Alexander Haim
Promaetheus ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[Erledigt] Galerie Problem... coraplanet PHP Tipps 2008 4 06.06.2008 13:42
Sessions Problem StephenKing PHP Tipps 2008 3 16.10.2007 08:30
datensätze defekt oder problem mit dem einlesen? Ministry Datenbanken 4 06.07.2006 18:42
problem!!! PHP Tipps 2006 6 08.02.2006 11:06
[Erledigt] wieder ein Problem bei phpmailer und smtp PHP Tipps 2006 24 07.02.2006 01:07
Array Problem [Ansatz ?] PHP Tipps 2005 0 27.01.2005 18:24
[Erledigt] Problem bei Massenmails versenden mit der Funktion mail PHP-Fortgeschrittene 3 19.01.2005 13:36
[Erledigt] Problem mit Übergabe einer Klasse in PHP4 PHP-Fortgeschrittene 10 08.01.2005 21:00
Problem mit Weiterleitung PHP Tipps 2004-2 16 22.12.2004 17:49
Smarty und PHP-Skript Problem PHP Tipps 2004-2 2 03.12.2004 22:27
[Erledigt] PHP Upload (Master Value/Local Value Problem) PHP-Fortgeschrittene 5 23.11.2004 07:21
Problem mit alter JavaScript-Funktion woods PHP Tipps 2004 1 13.08.2004 13:34
[Erledigt] Problem mit Timestamp! PHP Tipps 2004 24 08.06.2004 19:51
Login Problem PHP Tipps 2004 4 04.06.2004 18:46
foreach problem mAy^daY PHP Tipps 2004 3 02.06.2004 20:29

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
imagecolorallocatealpha text auf transparenten hintergrund, bildmanipulation probleme, imagecolortransparent ausgefranzt, imagegif transparenter hintergrund, bildmanipulation fehler, img0 hintergrund

Alle Zeitangaben in WEZ +2. Es ist jetzt 18:47 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.