Antworten auf deine Fragen:
Neues Thema erstellen

[php] Schrift Problem, bei Grafik erzeugung

CrysKey

Globtrotter

Ich erzeuge auf meiner Webseite einige Grafiken, mit der imagettftext Funktion!
Nur habe ich einige Unstimmigkeiten entdeckt, die mir nicht gefallen:


So wird die Schrift Verdana auf meinen Webserver generiert, von 1-20px Größe:


Und so auf meinem lokalen Apache Server:


Die selbe Schrift Datei, die selben Befehle und doch ist die Schrift unterschiedlich! Wie kommt das?
Es handelt sich immerhin um eine TrueType Schrift, die auf allen Medien gleich aussehen sollte!?


Und hier die Schrift Calibri auf meinen Webserver generiert, von 1-20px Größe:


Und so auf meinem lokalen Apache Server:


Wieder handelt es sich um die selbe Schrift Datei, die selben Befehle und doch ist die Schrift (immerhin nur) unterschiedlich breit!
Was aber hier noch gravierender auffällt ist, dass die Schrift in drei Ausgabearten, je nach Größe eingeteilt wird! Von 1-8px, von 9-14px und ab 15px! Einmal ist die Schrift abgerundet, einmal scharfkantig, wie eine Rastergrafik! Wie kommt das?


Diese Phänomene habe ich bei bisher allen Schriften feststellen können, die ich getestet habe!
Was meint ihr dazu?
(Mein Web und mein lokaler Server haben unterschiedliche php und GD-Bibliothek Version, aber daher wird nicht der große Unterschied her rühren!?)

Wie bzw. woher bekomme ich eine einheitliche Schrift, die auf meinem web-, als auch auf meinen lokalen- Server geleich aussieht und ein einheitliches Aussehen in allen Schriftgrößen hat!?

thx

Keine ne Ahnung, wie ich das Problem löse?

Versteht ihr überhaupt was ich meine?

Ich hab gedacht in einen Grafik Forum in der Unterkategorie programmieren muss mir geholfen werden ... ist ja ein grafisches programmier Problem :)
 
Zuletzt bearbeitet von einem Moderator:

Duddle

Posting-Frequenz: 14µHz

AW:
PHP:
 Schrift Problem, bei Grafik erzeugung[/b]

Welche Fehlerquellen können auftreten? Du hast
a) (vielleicht) unterschiedliche Betriebssysteme mit
b) unterschiedlichen PHP-Versionen mit
c) unterschiedlichen GDLib-Versionen und möglicherweise noch
d) unterschiedlichen Interpretationen von TTFs

Du kannst jetzt Schritt für Schritt alle Fehlerquellen ausmerzen, indem du zuerst lokal ein zweites Testsystem aufbaust mit der anderen GDLib-Version (aber gleicher PHP-Version, falls das möglich ist). Falls die Ergebnisse für beide lokale Dienste gleich sind, liegt es wohl nicht an der GDLib-Version. 
Dann kannst du die andere PHP-Version auf einem lokalen System installieren, mit der anderen GDLib, dann die Ergebnisse vergleichen. Falls diese beide richtig sind, liegt es (wahrscheinlich) nicht an unterschiedlichen PHP-Versionen. Da du an diesem Punkt schon an der Betriebssystem-Ebene bist, kannst du sowieso nichts ändern.


Duddle
 

CrysKey

Globtrotter

AW:
PHP:
 Schrift Problem, bei Grafik erzeugung[/b]

Danke für deine Antwort!
[quote="Duddle, post: 1570495"]Du hast
a) (vielleicht) unterschiedliche Betriebssysteme mit
b) unterschiedlichen PHP-Versionen mit
c) unterschiedlichen GDLib-Versionen und möglicherweise noch[/quote]
Ja, alle drei Dinge sind unterschiedlich!
Ich verstehe aber nicht in wie weit das die Interpretation von ttfs beeinfluss, wo wir beim nächsten wären ...
(Ich könnte natürlich versuchen die selbe php und GD Version auf beiden System zu installieren, was natürlich einen riesen Aufwand entspricht und keine Sicherheit auf Erfolg besteht!)
[quote="Duddle, post: 1570495"]d) unterschiedlichen Interpretationen von TTFs[/quote]
Kann man eine ttf unterschiedlichen interpretieren? 
Es ist ja immerhin eine Vektor Schrift! Und Vektor bleibt ja Vektor!
Eigentlich dürfte die Schrift auf jeden OS, PC, Drucker, Plotter usw. gleich aussehen, so war zumindest meine subjektive Meinung bis jetzt! Oder täusche ich mich da!?
 

ti8shbi

Allround

AW:
PHP:
 Schrift Problem, bei Grafik erzeugung[/b]

weiß es zwar nicht genau, aber es könnte vom Systemunterschied her kommen.

Ich schätze, du hast lokal einen Windows Rechner, und der Server ist ein Linuxrechner, oder?

Jetzt kann ich nur sagen, versuch mal ein virtuelles Linux aufzusetzen (funktioniert mit VirtualBox und Ubuntu recht schnell) und schau dir dann mal die Resultate an.

auch wenn TTFs eben Vektoren sind, kommt es ganz drauf an, wie es das Programm rendert... Vektor ist zwar Vektor, aber eben nicht gleich dem wieder in Pixel umgerechneten Endergebnis (was es eben im Endeffekt ist, da kein Monitor Vektoren darstellen kann).
 
Zuletzt bearbeitet:

Duddle

Posting-Frequenz: 14µHz

AW:
PHP:
 Schrift Problem, bei Grafik erzeugung[/b]

[quote="CrysKey, post: 1570681"]Ich könnte natürlich versuchen die selbe php und GD Version auf beiden System zu installieren, was natürlich einen riesen Aufwand entspricht und keine Sicherheit auf Erfolg besteht![/QUOTE]

Deshalb sollst du es ja auch in einem Testsystem machen, diese Dienste sind doch schnell installiert.

Ob TTFs anders interpretiert werden, weiß ich nicht. Ich vermute es aber. Jede Schicht bringt neue Stolpersteine, Möglichkeiten für anderes Verhalten. Ich vermute einfach, die GDLib wird das Betriebssystem fragen, wie nativ Schriftarten zu rendern sind. Und da es offensichtlich keine Absprache zwischen den Bibliotheks-Entwicklern für Linux-Derivate und Windows-Betriebssystemen gibt, wird es da zu Unstimmigkeiten kommen.

Es bringt aber nichts, darüber ausschließlich zu spekulieren. Wenn du genau wissen willst, was passiert: schau in den Quellcode. Wie wird imagettftext() von PHP an GDLib weitergereicht? Was macht dann die GDLib selbst? Beides ist offen, also kannst du den Code durchforsten und ihn verstehen.

Alternativ setzt du dir eben ein Testsystem auf, und schaust wo es nun genau hakt. Oder du akzeptierst einfach, dass die Ergebnisse etwas anders sind.


Duddle
 

CrysKey

Globtrotter

AW:
PHP:
 Schrift Problem, bei Grafik erzeugung[/b]

Ich hab jetzt mal in der VBox Ubuntu mit dem Apache selber Version und der selben GB-Bibliotek wie auf dem Server installiert! 
Auf dem Server ist eine Debian Distribution, nur welche genau kann ich nicht sagen ... 
Die Schrift wird dennoch wieder leicht anders dargestellt, als auf dem Server oder meinen Win Apache ... wenn überhaupt, dann liegt es am OS! Dass kann ich aber nicht ausschließen ...
Btw.: Das installieren von Linux, Apache, Bib und dass alles in der richtigen Version hat mir fast 6h gekostet ... schnell ist was anderes :)



Das war aber auch [I]nicht [/I]mein Hauptproblem:
[quote="CrysKey, post: 1568072"]...
[URL="http://saved.im/mtyymdk4ythk/local_calibri.png"][IMG]http://saved.im/mtyymdk4ythk_vs/local_calibri.png[/IMG][/URL]

...
Was aber hier noch gravierender auffällt ist, dass die Schrift in drei   Ausgabearten, je nach Größe eingeteilt wird! Von 1-8px, von 9-14px und   ab 15px! Einmal ist die Schrift abgerundet, einmal scharfkantig, wie   eine Rastergrafik! Wie kommt das?

Diese Phänomene habe ich bei bisher allen Schriften feststellen können, die ich getestet habe! Und das auf allen Systemen!
...

Wie bzw. woher bekomme ich eine einheitliche Schrift, die auf meinem   web-, als auch auf meinen lokalen- Server gleich aussieht und ein   einheitliches Aussehen in allen Schriftgrößen hat!?
...[/quote]
Wieso gibt es diese drei Unterteilungen der Schrift Interpretation?
Ist nämlich ärgerlich, wenn ich die selbe Schrift nicht für alle Größen verwenden kann!
 

Duddle

Posting-Frequenz: 14µHz

AW:
PHP:
 Schrift Problem, bei Grafik erzeugung[/b]

Das wird wohl am Antialiasing liegen. Irgendwann ist die Schrift groß genug, um noch einen zweiten Pixel sauber dranzukleben. Alles darunter erzeugt nur einen und einen halb gefüllten Pixel, alles darüber erzeugt 2 und einen halb gefüllten Pixel.

Stell es dir wie beim runden einer Zahl vor:
1,0 -> 1
1,1 -> 1
1,2 -> 1
1,3 -> 1
1,4 -> 1
1,5 -> 2
1,6 -> 2
1,7 -> 2
1,8 -> 2
1,9 -> 2

Es gibt keine halben Pixel, also keine sauberen Zwischenstufen, deshalb erzeugt der Algorithmus irgendwann ein anderes Erscheinungsbild.



Duddle
 

netbandit

Aktives Mitglied

AW:
PHP:
 Schrift Problem, bei Grafik erzeugung[/b]

[quote="Duddle, post: 1571260"]Das wird wohl am Antialiasing liegen.[/quote]
Dazu steht auf php.net -> [URL="http://php.net/manual/de/function.imagettftext.php"]imagettftext()[/URL]:
[quote]
[I]Col[/I] ist der Farbindex. Verwenden Sie den  negativen Index-Wert, führt das zum Aufheben des Farbüberlaufs (Antialiasing). 
[/quote]Ich würde da jetzt einfach mal [B]-1[/B] eintragen und schauen ob da immer noch Unterschiede vorhanden sind :D
 

Duddle

Posting-Frequenz: 14µHz

AW:
PHP:
 Schrift Problem, bei Grafik erzeugung[/b]

[quote="netbandit, post: 1571320"]Ich würde da jetzt einfach mal [B]-1[/B] eintragen und schauen ob da immer noch Unterschiede vorhanden sind :D[/QUOTE]

Wenn schon, dann -1*$farbe. Eine negativer Farbwert stellt, wie in der Doku beschrieben, das Antialiasing aus. Es muss dafür aber auch in die GDLib kompiliert worden sein - ich schätze aber,  dass das Standard ist.


Duddle
 

CrysKey

Globtrotter

Es gibt keine halben Pixel, also keine sauberen Zwischenstufen, deshalb erzeugt der Algorithmus irgendwann ein anderes Erscheinungsbild.
Was ja nicht ganz stimmt, denn wie du selbst gesagt hast verwendet die Funktion Standardmäßig AA!
Deshalb gibt es Alpha-Werte (also halbe- bzw. halbtransparente- Pixel ;))!


Und hier liegt ja das Phänomen:

Calibri mit Schriftgröße <8px hat Alphawerte:
local_calibri_08.png


Schriftgröße >15px hat auch Alphawerte:
local_calibri_16.png


Aber Schriftgröße 9px-14px hat keine Alphawerte:
local_calibri_13.png


Und das konsequent bei allen (von mir getesteten) Schriften und auf allen (von mir getesteten) OS, php und GD-Versionen!


Wenn das ein Bug ist, dann ist es ein großer Bug!
Komisch nur, das ich darüber nichts im Internet finde ...


Calibri ohne AA:

Die Alphawerte werden nur ausgefüllt, die Schrift zwischen 9px und 14px wirkt dennoch schmaler, bzw. der Rest ist breiter!
 
Zuletzt bearbeitet:
Bilder bitte hier hochladen und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Antworten auf deine Fragen:
Neues Thema erstellen

Willkommen auf PSD-Tutorials.de

In unseren Foren vernetzt du dich mit anderen Personen, um dich rund um die Themen Fotografie, Grafik, Gestaltung, Bildbearbeitung und 3D auszutauschen. Außerdem schalten wir für dich regelmäßig kostenlose Inhalte frei. Liebe Grüße senden dir die PSD-Gründer Stefan und Matthias Petri aus Waren an der Müritz. Hier erfährst du mehr über uns.

Stefan und Matthias Petri von PSD-Tutorials.de

Nächster neuer Gratisinhalt

03
Stunden
:
:
25
Minuten
:
:
19
Sekunden

Neueste Themen & Antworten

Flatrate für Tutorials, Assets, Vorlagen

Zurzeit aktive Besucher

Statistik des Forums

Themen
118.565
Beiträge
1.538.066
Mitglieder
67.488
Neuestes Mitglied
Andrew56524
Oben