Roger: text auf bild bannen

moin!

ich möchte text in eine grafik bekommen. allerdings funzt das auf 2 servern und auf einem (auf dem's laufen soll (verdammt!)) eben nicht.

also ich hab ein masterbild, auf das nur noch text soll. ich mache dass wie folgt:

$jpeg = imagecreatefromjpeg($master_img);
$white = ImageColorAllocate($jpeg,255,255,255);
$black = ImageColorAllocate($jpeg,0,0,0);
$bild_mitte =  round(imagesx($jpeg)/2);

$masse = imagettfbbox ($size, 0, $font, $text1);
ImageTTFText($jpeg, $size, 0, $bild_mitte-($masse[2]/2), 60, $white, $font, $text1);

[...]
header("content-type: image/jpeg");
ImageJPEG($jpeg, $ausgabe_img, 95);
ImageDestroy($jpeg);

dumm ist eben, dass die schrift auf dem einen server richtig dargestellt wird und auf dem anderen nicht lesbar ist.
hier mal zur veranschaulichung testweise die grafiken:
<img src="http://www.maennchen1.de/lk/media_125x200.jpg" border="0" alt=""> <img src="http://www.loseklicker.de/media_125x200.jpg" border="0" alt="">

wie kann ich den fehler beheben?

gruß.
roger.

--
Dein eigenes Newslettersystem auf deiner Homepage: http://newsletter.maennchen1.de
  1. Hello,

    dass es da diverse Versionsunterschiede gibt und ggf. noch Build-Unterschiede vermute ich schön länger. Ich habe mich mit freetype und dem Drehen von Text sowie der Abmaßebestimmung abgekämpft. Da gibts auch genug Fehler.

    Schau doch mal, welche Versionen vorliegen und mach mal eine Liste.

    Da bleibt dann wohl nur die Möglichkiet, das Bild nebst Daten zu dem Server zu posten, der es kann und von dort wieder abzuholen...

    Liebe Grüße aus http://www.braunschweig.de

    Tom

    --
    Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
    1. moin!

      meinst du das liegt an der version der gdlib? dort konnte ich den einzigsten unterschied feststellen (auf dem server, wo die fehler auftraten war 1.6 installiert, auf den anderen 2.0.*).

      allerdings konnte ich in der doku keine unterscheidungen zw. den beiden versionen feststellen... :(

      gibt es vielleicht ne andere methode, die auch mit älteren versionen läuft?

      gruß.
      roger.

      --
      Dein eigenes Newslettersystem auf deiner Homepage: http://newsletter.maennchen1.de
      1. Moin!

        meinst du das liegt an der version der gdlib? dort konnte ich den einzigsten unterschied feststellen (auf dem server, wo die fehler auftraten war 1.6 installiert, auf den anderen 2.0.*).

        Das erklärt alles.

        allerdings konnte ich in der doku keine unterscheidungen zw. den beiden versionen feststellen... :(

        Aber die gibt es.

        gdlib 1.6 kann nur 256-Farben-Bilder darstellen. JPEGs werden jeweils automatisch dahin konvertiert (oder machen eben Probleme). Außerdem sind die Zeichenfarben für alle Zeichenmethoden (auch für Text) dort eben mit ImageColorAllocate vor dem Einsatz zu definieren. Allerdings geht das eben nur dann gut, wenn du der Farbpalette noch Farben hinzufügen kannst. Ansonsten müßtest du vermutlich die Farbpalette nach der gewünschten Farbe durchsuchen und den Farbindex zum Malen verwenden.

        Bei gdlib 2.0 kannst du True-Color-Bilder erstellen. Und die Farbangabe zum Malen kannst du direkt als 24-Bit-Zahl im Malbefehl angeben, ein ImageColorAllocate ist nicht notwendig.

        Statt
        ImageTTFText($jpeg, $size, 0, $bild_mitte-($masse[2]/2), 60, $white, $font, $text1);

        geht
        ImageTTFText($jpeg, $size, 0, $bild_mitte-($masse[2]/2), 60, 0xFFFFFF, $font, $text1);

        und zeichnet weißen Text.

        gibt es vielleicht ne andere methode, die auch mit älteren versionen läuft?

        Nein. Entweder hast du gdlib 1.6 und mußt dich mit deren Unzulänglichkeit abfinden (was dann sinnvollerweise dazu führen sollte, dass du das auf deinem Testserver auch mal installierst), oder du hast die gute gdlib 2.0 und einige Probleme weniger.

        - Sven Rautenberg

        --
        Die SelfHTML-Developer sagen Dankeschön für aktuell 20065,57 Euro Spendengelder!