Die Grafik kann nicht angezeigt werden, weil sie Fehler enthält.
Michas
- php
Hallo,
ich versuche mich gerade an dynamischen Bildern. Dazu habe ich eine png Datei auf welcher Text erscheinen soll.
<?php
header("Content-type: image/png");
$string = "Text zum testen";
$im = imagecreatefrompng("bild.png");
$black = ImageColorAllocate ($im, 0, 0, 0);
ImageTTFText ($im, 20, 0, 28, 104, $black, "arial.ttf", $string);
imagealphablending($im, false);
imagesavealpha($im, true);
imagepng($im);
imagedestroy($im);
?>
Das png Bildchen hat transparente Bereiche. Leider ist es jedoch so, das sobald ich den Text nutze, die Fehlermeldung "Die Grafik kann nicht angezeigt werden, weil sie Fehler enthält." (mit URL Angabe)
Lasse ich meinen Textteil weg (ImageTTFText) funktioniert die Anzeige des Bildes.
Was mache ich falsch oder wie gehts richtig?
Vielen Dank.
Hello,
Was mache ich falsch oder wie gehts richtig?
das hatte ich auch erst vor kurzem.
Ich habe kackfrech dann *.gif benutzt anstelle von *.png und dann gab es keine Probleme mehr.
Ich habe es auch ganz vergessen, das auf meinen Zettel zu nehmen. Hab ich hiermit nachgeholt.
Du wirst es wohl erstmal genauso machen müssen :-(
Liebe Grüße aus dem schönen Oberharz
Tom vom Berg
Hi!
Ich habe kackfrech dann *.gif benutzt anstelle von *.png und dann gab es keine Probleme mehr.
Was soll daran nun frech sein? Es ist doch vollkommen egal, wie die Ressource heißt: die Angabe des Content-Type im HTTP-Header steuert doch, wie der Client die Daten zu behandeln hat.
Oder habe ich Dich mißverstanden?
Ich denke, der OP hat bereits einen zielführenden Hinweis erhalten.
off:PP
Hello,
Ich habe kackfrech dann *.gif benutzt anstelle von *.png und dann gab es keine Probleme mehr.
Was soll daran nun frech sein? Es ist doch vollkommen egal, wie die Ressource heißt: die Angabe des Content-Type im HTTP-Header steuert doch, wie der Client die Daten zu behandeln hat.
Oder habe ich Dich mißverstanden?
Ja. Du hast (mich) mis(t| )verstanden
Ich habe anstelle von imagepng() imagegif() benutzt, nachdem ich entsprechend des Hinweises
Ich denke, der OP hat bereits einen zielführenden Hinweis erhalten.
überprüft hatte, ob der Font verfügbar ist.
Ich habe jedoch nicht überprüft, ob es mit anderen Fonts und imagepng() trotzdem klappt.
Das habe ich nun auf einem Zettel stehen.
Es könnte ja tatsächlich sein, dass imagepng nur bei bestimmten Fonts streikt, warum auch immer
Ich habe das Ganze eingebaut in das Muster für einen Onlinezähler, um das mich einer meiner Kandidaten gebeten hatte http://selfhtml.bitworks.de/ -> auf den Counter klicken.
(bevor hier JEHOVA-Rufe kommen: ich propagier nicht die Verwendung derartiger Counter, werde aberimmer wieder darum gebeten zu erklären, wie man sie bauen kann. Diesmal habe ich das Ergebnis aufgehoben, weil es überhand genommen hat. Wenn ich viel Zeit habe, werde ich auch noch zum Nachlesen dokumentieren, warum ich was gemacht habe und welche Fehler und stylischen Unschönheiten noch drin sind. Vielleicht mache ich auch eine Klasse daraus *fg* )
Liebe Grüße aus dem schönen Oberharz
Tom vom Berg
Hi!
Ja. Du hast (mich) mis(t| )verstanden
Ich habe anstelle von imagepng() imagegif() benutzt, nachdem ich entsprechend des Hinweises
Oki - gut, dass wir darüber gesprochen habe.
Mhm, wenn ich jetzt so überlege: in meinem letzten[*] profesionellen Web-Projekt - das war wirklich ein etwas größeres - hatte ich totale Probleme mit den PNG-Funktionen der GDLib.
Das Ergebnis: nur Gif- und Jpg-Generierung wird unterstützt - wir konnten damals den Fehler nicht lokalisieren und der Termin für den Launch rückte immer näher.
[*] wirklich mein letztes, denn ich mache seit Anfang des Jahres etwas ganz anderes - also nicht das vorige Projekt.
off:PP
Hello,
Mhm, wenn ich jetzt so überlege: in meinem letzten[*] profesionellen Web-Projekt - das war wirklich ein etwas größeres - hatte ich totale Probleme mit den PNG-Funktionen der GDLib.
Das Problem ist die eigene Qualitätssicherung.
Man kennt ja nie das Ganze, das war ja eben provokativ :-)
Auch andere Profis kennen nicht das Ganze.
Die kennen nur vielleicht neurere Sachen und ggf. auch mehr, aber den ganzen Schmutz können sie auch nicht kennen. Oft sind es auch gerade die Verschulten, die gar nicht auf die Alternativlösunge kommen, weil sie neben "Designpatterns" und Modellen nichts anderes mehr gelten lassen.
Also immer aufschreiben, wenn 'was ulkig ist, klassifizieren in _verschiedenste_ Richtungen, eben was man gerade überblickt, einsortieren (da helfen Datenbanken und zur Not die Volltextsuche) und immer gut portieren von einer Datenbasis zur nächsten. Mache ich seit ca. 1982 mit PC, davor mit Karteikarten. Dann habe ich meinen ersten IBM bekommen. So kann man auch mal suchen in den Annalen.
Die heuristischen Verfahren sind übrigens fast vollständig unabhängig von der Branche.
Liebe Grüße aus dem schönen Oberharz
Tom vom Berg
Hi!
Mhm, wenn ich jetzt so überlege: in meinem letzten[*] profesionellen Web-Projekt - das war wirklich ein etwas größeres - hatte ich totale Probleme mit den PNG-Funktionen der GDLib.
Das Problem ist die eigene Qualitätssicherung.
Nein - in diesem Fall hat der Kunde das so entschieden, denn die Serverfarm war bereits vorher fertig konfiguriert und Änderungen wurde abgelehnt. So konnten wir keine anderen Versionen der GDLib mehr testen.
Man kennt ja nie das Ganze, das war ja eben provokativ :-)
Das macht ja nix, wir sind hier nicht im Streichelzoo;)
Auch andere Profis kennen nicht das Ganze.
Niemand kennt das im Detail richtig - deshalb sind ja die Schnittstellen zu anderen Bereichen so wichtig. Einen Blick auf das Ganze zu nehmen, sollte aber immer 'versucht' werden.
Die kennen nur vielleicht neurere Sachen und ggf. auch mehr, aber den ganzen Schmutz können sie auch nicht kennen. Oft sind es auch gerade die Verschulten, die gar nicht auf die Alternativlösunge kommen, weil sie neben "Designpatterns" und Modellen nichts anderes mehr gelten lassen.
Ja die kenne ich - mit diesen Leuten habe ich täglich zu tun - bevor es hier nun Ärger gibt: natürlich gibt es sehr gute und 'über den Tellerrand schauende' Software-Entwickler und -Architekten.
Also immer aufschreiben, wenn 'was ulkig ist, klassifizieren in _verschiedenste_ Richtungen, eben was man gerade überblickt, einsortieren (da helfen Datenbanken und zur Not die Volltextsuche)
Das tue ich meistens - manchmal ist es auch eine analoge Aufzeichnung mit Kuli auf Papier - das wichtige kommt immer in eine DB, damit man danach suchen kann.
und immer gut portieren von einer Datenbasis zur nächsten.
Das ist ja seit einigen Jahren nicht mehr so das große Problem.
Früher war das ein Riesenakt - zumindest in dem Bereich, in welchem ich damals zuhause war: (Geo-)Informations- und CAD-Systeme. Eine Portierung zwischen den diversen Anwendungen war teilweise unmöglich - heute nicht mehr.
Mache ich seit ca. 1982 mit PC, davor mit Karteikarten. Dann habe ich meinen ersten IBM bekommen.
Da warst Du aber ein 'early adaptor' - 1982 hatte ich einen Commodore VIC-20
Die heuristischen Verfahren sind übrigens fast vollständig unabhängig von der Branche.
FACK.
off:PP
Hello,
Mhm, wenn ich jetzt so überlege: in meinem letzten[*] profesionellen Web-Projekt - das war wirklich ein etwas größeres - hatte ich totale Probleme mit den PNG-Funktionen der GDLib.
Das Problem ist die eigene Qualitätssicherung.
Nein - in diesem Fall hat der Kunde das so entschieden, denn die Serverfarm war bereits vorher fertig konfiguriert und Änderungen wurde abgelehnt. So konnten wir keine anderen Versionen der GDLib mehr testen.
Und hat das Testen von bereitgestellten Ressourcen, bevor man sie "großtechnisch" benutzt nichts mit Qualitätssicherung zu tun?
Sowas sollte einfließen in jeden Entwicklungsvertrag.
Liebe Grüße aus dem schönen Oberharz
Tom vom Berg
Hi!
Mhm, wenn ich jetzt so überlege: in meinem letzten[*] profesionellen Web-Projekt - das war wirklich ein etwas größeres - hatte ich totale Probleme mit den PNG-Funktionen der GDLib.
Das Problem ist die eigene Qualitätssicherung.
Nein - in diesem Fall hat der Kunde das so entschieden, denn die Serverfarm war bereits vorher fertig konfiguriert und Änderungen wurde abgelehnt. So konnten wir keine anderen Versionen der GDLib mehr testen.
Und hat das Testen von bereitgestellten Ressourcen, bevor man sie "großtechnisch" benutzt nichts mit Qualitätssicherung zu tun?
Doch, sicher! Das ist aber nicht der Punkt.
Sowas sollte einfließen in jeden Entwicklungsvertrag.
Och bütte: du hast ja pinzipiell recht, aber manchmal hat man eben nicht die nötigen Mittel zur Hand.
Stell Dir vor, ein nicht ganz unbekanntes Unternehmen aus der Medienbranche wünscht ein neues Portal zu launchen - das machen die mehrmals im Jahr - mit Erfolg aus deren Sicht.
Sie holen sich 20 freie Entwickler, um 'das Ding zu launchen' - da hast du keinen 'Entwicklervertrag', sondern codest 10 Stunden am Tag, nach deren Bedingungen. Du hast mit denen einen Werkvertrag nach BGB - keine Aufgabe im Bereich Konzeptentwicklung, keine Beratungsfunktion etc. - das wollen die nicht.
Die wollen Codesklaven, die funktionierende Web- Anwendungen, -Portale, -Communities etc. entwickeln - und zahlen dafür auch sehr gut.
off:P'my 2 cents'P
Hi,
<?php
header("Content-type: image/png");
$string = "Text zum testen";
$im = imagecreatefrompng("bild.png");
$black = ImageColorAllocate ($im, 0, 0, 0);
ImageTTFText ($im, 20, 0, 28, 104, $black, "arial.ttf", $string);
imagealphablending($im, false);
imagesavealpha($im, true);
imagepng($im);
imagedestroy($im);
?>
bist du sicher, dass du eine Truetype-Schriftdatei arial.ttf auf deinem Server im Scriptverzeichnis hast? Und wenn du sie da hast, dass du das aufgrund der Rechte und Lizenzen überhaupt darfst?
> Das png Bildchen hat transparente Bereiche. Leider ist es jedoch so, das sobald ich den Text nutze, die Fehlermeldung "Die Grafik kann nicht angezeigt werden, weil sie Fehler enthält." (mit URL Angabe)
Ja. PHP schmeißt aufgrund der Zeile mit imagettftext() eine Fehlermeldung, weil die Datei arial.ttf nicht gefunden wird. Und diese Fehlermeldung wird mitten in die Ausgabe gemischt, also in die binären Bilddaten hinein. Dass ein Programm zur Darstellung von PNG-Bildern mit diesem Kauderwelsch nichts mehr anfangen kann, dürfte klar sein.
> Was mache ich falsch oder wie gehts richtig?
Benutze eine Schriftart, die du auch auf diese Art verwenden darfst (das kommt einer Wiederveröffentlichung gleich), und sorge dann dafür, dass die Truetype-Datei auch für das Script erreichbar ist.
Ciao,
Martin
--
[Dieser Satz](http://community.de.selfhtml.org/zitatesammlung/zitat262) wurde in mühsamer Kleinstarbeit aus einzelnen Wörtern zusammengesetzt.
(Hopsel)
bist du sicher, dass du eine Truetype-Schriftdatei arial.ttf auf deinem Server im Scriptverzeichnis hast? Und wenn du sie da hast, dass du das aufgrund der Rechte und Lizenzen überhaupt darfst?
Ja und wer sagt das ich etwas veröffentliche?
Ja. PHP schmeißt aufgrund der Zeile mit imagettftext() eine Fehlermeldung, weil die Datei arial.ttf nicht gefunden wird. Und diese Fehlermeldung wird mitten in die Ausgabe gemischt, also in die binären Bilddaten hinein. Dass ein Programm zur Darstellung von PNG-Bildern mit diesem Kauderwelsch nichts mehr anfangen kann, dürfte klar sein.
Klar schon, doch wie oben schon angedeutet --> Die Schriftartendatei ist vorhanden.
Benutze eine Schriftart, die du auch auf diese Art verwenden darfst (das kommt einer Wiederveröffentlichung gleich), und sorge dann dafür, dass die Truetype-Datei auch für das Script erreichbar ist.
Siehe oben und siehe oben.
Schade das Du Dir die Mühe gemacht hast und nicht helfen konntest....... Danke
Hi,
Lasse ich meinen Textteil weg (ImageTTFText) funktioniert die Anzeige des Bildes.
Was mache ich falsch
Du debuggst nicht.
header auskommentieren, error_reporting auf E_ALL und display_errors auf on, falls nicht schon geschehen - dann wird dir PHP schon sagen, was nicht stimmt.
Ich vermute auch Probleme mit der Schriftdatei - auch wenn sie vorhanden ist, kann's damit oft Probleme geben. Die Nutzerkommentare im Manual wissen dazu übrigens auch einiges.
MfG ChrisB
Moin,
ist natürlich bissel Mist, das hier bei meiner Frage anderen Sachen disskutiert, aber ich frage dennoch weiter. :)
Ich habe jetzt mein Script auf einen anderen Server gehauen und da läuft es plötzlich. Was ist da los? Auf beiden Kisten läuft PHP 5 mit GD.
Grüße
Hallo,
ich versuche mich gerade an dynamischen Bildern. Dazu habe ich eine png Datei auf welcher Text erscheinen soll.
<?php
header("Content-type: image/png");
$string = "Text zum testen";
$im = imagecreatefrompng("bild.png");
$black = ImageColorAllocate ($im, 0, 0, 0);
ImageTTFText ($im, 20, 0, 28, 104, $black, "arial.ttf", $string);
imagealphablending($im, false);
imagesavealpha($im, true);
imagepng($im);
imagedestroy($im);
?>
>
> Das png Bildchen hat transparente Bereiche. Leider ist es jedoch so, das sobald ich den Text nutze, die Fehlermeldung "Die Grafik kann nicht angezeigt werden, weil sie Fehler enthält." (mit URL Angabe)
>
> Lasse ich meinen Textteil weg (ImageTTFText) funktioniert die Anzeige des Bildes.
>
> Was mache ich falsch oder wie gehts richtig?
>
> Vielen Dank.
>
>
Hello,
Ich habe jetzt mein Script auf einen anderen Server gehauen und da läuft es plötzlich. Was ist da los? Auf beiden Kisten läuft PHP 5 mit GD.
Dann sag uns bitte mal die Versionen von beiden Maschinen
damit wir auch etwas davon haben. Und vergiss nicht dazuzusagen, auf welchem System es läuft und auf welchem nicht.
Liebe Grüße aus dem schönen Oberharz
Tom vom Berg
Yerf!
Ich habe jetzt mein Script auf einen anderen Server gehauen und da läuft es plötzlich. Was ist da los? Auf beiden Kisten läuft PHP 5 mit GD.
Ruf doch die URL des Bildes mal direkt über die Adresszeile des Browsers auf. Evtl. gibt PHP ja eine Fehlermeldung aus (evtl. musst du kurz mal den Content-Type auf text ändern)
Gruß,
Harlequin
Hi,
ist natürlich bissel Mist, das hier bei meiner Frage anderen Sachen disskutiert, aber ich frage dennoch weiter. :)
Es *ist* MIST, wenn du lediglich die Frage "warum funzt nich" wiederholst, und nicht auf die Hinweise, die du bekommen hast, eingehst.
Ich habe jetzt mein Script auf einen anderen Server gehauen und da läuft es plötzlich. Was ist da los?
Andere Bedingungen, Script laüft dort, fein.
Aussagekraft für Problematik auf eigentlichem Server? Genau, Null.
Und deine Reaktion auf die Hinweise, dass du bitte anfangen sollst, sinnvolles Debugging zu betreiben? Ärgerlicherweise auch Null.
MfG ChrisB
Hallo.
Script laüft dort, fein.
Punkte rennen formlïch.
MfG, at