Ankündigung

Einklappen
Keine Ankündigung bisher.

gd-libary - ImageString

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • dackel-gott-whaa
    hat ein Thema erstellt gd-libary - ImageString.

    gd-libary - ImageString

    Hallo Leute,

    ich hab ein Problem mit ImageString. Und zwar übergeb ich per Umgebungsvariable einen String mit Zeilenumbrüchen - diese werden aber im Image nicht umgesetzt, also alles in einer Zeile.

    Jetzt hab ich beim rumsuchen einen anderen Beitrag gefunden in dem das irgendwie so gelöst wurde dass der String Zeile für Zeile in das Bild geschrieben wurde.

    Ist das wirklich die einzige Lösung? Ich habs jetzt auch schon probiert, aber irgendwelche unrealistischen Probleme

    Hier mal noch der gesamte "image-code", wie er momentan - incl. der Sache mit den Zeilen einzeln die ich gefunden habe - aussieht:

    Code:
    <?
    header("Content-type: image/png"); 
    $image = ImageCreateFromJPEG('etiketten/'.$bild);
    $image2 = ImageCreateFromJPEG('etiketten/'.$bspbild);
    ImageCopy($image,$image2,$offx,$offy,0,0,100,100);
    $textcolor = ImageColorAllocate($image,200,00,00);
    
    // den Text nach Zeilenumbruch aufteilen
    $zeilen = explode("\n",$bsptext);
    
    $font_size = 4;
    $zeilen_hoehe = $font_size * ($font_size * 0.875);
    
    //$wort_array jetzt auslesen
    $i=0;
    foreach($zeilen as $zeile) {
    	$i++;
    	$step = $zeilen_hoehe * $i;
    	ImageString($image,$font_size,0,$step,$zeile,$textcolor);
    } 
    ImagePNG($image);
    ?>
    Ja, ich hoffe ihr lacht mich nich aus weil ich in meiner Übermüdung irgendwas total lächerliches übersehen hab, und ich hoffe noch mehr das ihr eine Lösung wisst die einfach den String mit Zeilenumbrüchen in das verdammte Bild schreibt

    Danke schonmal

    Andi

  • dackel-gott-whaa
    antwortet
    Danke auf jedenfall

    Ich hab parallel dazu auch noch mal in der einbindenden Datei die $bsptext urlencoded - und auf jedenfall gehts jetzt.

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    Hmmm, hab dein Script mal selber probiert (etwas verändert):

    PHP-Code:
    <?php
    error_reporting
    (E_ALL);

    $bsptext file_get_contents('robots.txt');

    $image ImageCreateFromPNG('test.png'); 
    $textcolor ImageColorAllocate($image,200,00,00); 

    // den Text nach Zeilenumbruch aufteilen 
    $zeilen split("(\r|\n|\r\n)"$bsptext); 

    $font_size 4
    $zeilen_hoehe $font_size * ($font_size 0.875); 

    //$wort_array jetzt auslesen 
    $i=0
    foreach(
    $zeilen as $zeile) { 
       
    $i++; 
       
    $step $zeilen_hoehe $i
       
    ImageString($image,$font_size,0,$step,$zeile,$textcolor); 

    ImagePNG($image'$$$.png'); 
    echo 
    '[img]$$$.png[/img]';

    ?>
    ... und geht wunderbar, jedenfalls bei mir.
    Noch etwas vergessen ?

    Einen Kommentar schreiben:


  • dackel-gott-whaa
    antwortet
    Ich werd bald verrückt... Wenn ich in der foreach schleife $step ausgebe sehe ich wie $step wunderschön sich jedes mal um die zeilenhöhe erhöht, und trotzdem ist aller Text, egal in welchem Durchlauf er geschrieben wird, in einer Zeile.......

    Einen Kommentar schreiben:


  • dackel-gott-whaa
    antwortet
    Hm, ja... genau von dir hab ich diesen Script ja, nur dass ich die Zeilenumbrüche schon im string drin hab und nicht alle x-Zeichen umbreche.

    Jetzt ist nur die Frage warum es nicht geht... wenn ich in der foreach schleife

    echo $zeile.'
    ';

    schreibe, gibt er mir ( wenn ich mir das image direkt anschaue ) auch wirklich zeile für zeile mit
    aus...

    Beim Text im Bild allerdings nicht... und ich weiß nicht warum - mein einziger Ansatz war dass er lehre Zeilen vielleicht ignoriert ( wo 2 Zeilenumbrüche direkt hintereinander waren ), aber auch wenn ich an $zeile noch etwas anhänge scheint er sie einfach nicht ins bild zu schreiben... so ist $zeilen[3], in der der erste Text steht, auch ganz oben im Bild

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    Ich hatte das auch nur so bisher gelöst:

    http://www.cix88.de/cix_php/php_graf...textzeilen.php

    Einen Kommentar schreiben:


  • dackel-gott-whaa
    antwortet
    Nein, die Grafik wird bei mir schon angezeigt. Wenn ichs mir recht überlege scheint er leere Zeilen zu ignorieren, obwohl sie in dem array "zeilen" alle drin sind, und obwohl auch die foreach Schleife mehrfach durchlaufen wird. Es steht trotzdem immer aller Text in einer Zeile

    Muss eigentlich irgendein blöder Fehler sein...

    @Zerg

    Ob die Lösung schlecht ist wird sich noch zeigen, sie muss halt für unterschiedliche Schriftarten und Schriftgrößen funktionieren... Aber falls sie das nicht tut bau ich einfach einen Regler zum nachstellen ein

    Einen Kommentar schreiben:


  • xabbuh
    antwortet
    Wenn dir die Grafik überhaupt nicht angezeigt wird, lass den header()-Aufruf am Anfang weg, rufe dann die Datei auf und schau nach, welche Fehlermeldung du bekommst.

    Einen Kommentar schreiben:


  • Zergling-new
    antwortet
    Was ist an dieser Lösung so schlecht?

    Einen Kommentar schreiben:


  • dackel-gott-whaa
    antwortet
    Okay danke

    Hast du ne Idee warum das bei mir nich geht?

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    Ist das wirklich die einzige Lösung?
    Hab auch noch keine andere (effektive) Lösung gefunden.
    Es sind nunmal Grafik-Funktionen, keine Textverarbeitung

    Der Wert mit 0.875 ist rein experimentell entstanden

    Einen Kommentar schreiben:

Lädt...
X