Bild + unbekannte Breite?

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

  • #16
    Das man es eventuell mit der Funktion hinbekommt, hab ich gehofft, nur bleib ich ja am "Wie" stecken...

    Ich danke dir auf jeden Fall für deinen Code. Ich frag mich zwar gerade, wie ich das vor 2 Jahren richtig gehabt haben soll, weil sowas "kompliziertes" hatte ich damals sicher nicht, aber nun gut... kann ich nun ja leider nicht mehr nachvollziehen.

    Wie gesagt, danke für die Erklärung, wie mans macht

    Kommentar


    • #17
      Guten Morgen,

      Zitat von Blackgreetz Beitrag anzeigen
      nur bleib ich ja am "Wie" stecken...
      Das ist leider immer noch nicht konkreter als dein vorheriger Beitrag. Was funktioniert denn nicht, bzw. wo genau weißt du nicht weiter?

      Gruß,

      Amica
      [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
      Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
      Super, danke!
      [/COLOR]

      Kommentar


      • #18
        Äh.. nun gar nicht mehr.

        Es sollte "Blieb" heißen.
        Bei der Frage wusste ich leider nicht, wie ich das genau ausdrücken kann und combie nannte es ja damals Baseline.. deshalb

        War schon genau richtig deine Antwort

        Kommentar


        • #19
          Zitat von Blackgreetz Beitrag anzeigen
          Ich frag mich zwar gerade, wie ich das vor 2 Jahren richtig gehabt haben soll, weil sowas "kompliziertes" hatte ich damals sicher nicht
          Wenn du damals keine kursiven Schriftschnitte benutzt hast, fiel das mit dem Kerning vermutlich gar nicht auf. Wenn man als Höhe einfach die doppelte Schriftgröße nimmt, kommt man in vielen Fällen auch hin. Für die Unterlängen kann man dann z. B. 1/3 der Schriftgröße annehmen und das ggf. durch Probieren noch weiter annähern.

          Aber das ist natürlich mehr oder weniger unsauber und funktioniert nicht für jede Schriftart gleichermaßen, daher hatte ich mir diese Lösung gebaut, um vom Probieren und Vermuten wegzukommen und möglichst viele Sonderfälle zu erschlagen.
          [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
          Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
          Super, danke!
          [/COLOR]

          Kommentar


          • #20
            Zitat von AmicaNoctis Beitrag anzeigen
            Wenn du damals keine kursiven Schriftschnitte benutzt hast, fiel das mit dem Kerning vermutlich gar nicht auf. Wenn man als Höhe einfach die doppelte Schriftgröße nimmt, kommt man in vielen Fällen auch hin. Für die Unterlängen kann man dann z. B. 1/3 der Schriftgröße annehmen und das ggf. durch Probieren noch weiter annähern.
            Wie gesagt, ich weiß nicht mehr, was ich damals gemacht hatte um dann hier sagen zu können, dass es gelöst sei. Probieren kann eigentlich nicht hinhauen, weil ich das Script für verschiedene Fonts nutze und sich meine ersten 2 Tests gestern schon komplett unterscheideten, aber nun ist's ja egal

            Aber das ist natürlich mehr oder weniger unsauber und funktioniert nicht für jede Schriftart gleichermaßen, daher hatte ich mir diese Lösung gebaut, um vom Probieren und Vermuten wegzukommen und möglichst viele Sonderfälle zu erschlagen.
            Me too.

            -- Falls ich noch kurz fragen kann: Hast du dein Script viel im Einsatz? -> Viel Rechen- und Zeitaufwand, wenn man es intensiv nutzt? ..also mehrere Bilder pro Seite damit.. (wenn man Erfahrungswerte hat, kann ich die ja vlt nutzen )

            Kommentar


            • #21
              Zitat von Blackgreetz Beitrag anzeigen
              Hast du dein Script viel im Einsatz? -> Viel Rechen- und Zeitaufwand, wenn man es intensiv nutzt? ..also mehrere Bilder pro Seite damit.. (wenn man Erfahrungswerte hat, kann ich die ja vlt nutzen )
              Im Einsatz ist es momentan nicht viel. Es geht schon ziemlich flott, vorher hatte ich es mit Edge Detection gemacht, dass dauerte dann schon etwas länger.

              Ein genaues Benchmark kann ich dir nicht vorlegen, aber die Bilder auf der Seite wurden alle zusammen in unter einer halben Sekunde generiert und zum Browser geschickt. Die 300-fache Textmenge (von der auf der Seite) dauerte 56 Sekunden Ladezeit, ich glaub, das ist noch ganz anständig.
              [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
              Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
              Super, danke!
              [/COLOR]

              Kommentar


              • #22
                Sollst jetzt auch keinen Benchmark machen oder es testen, falls du es nun so verstanden haben solltest.

                Mit deinen Angaben kann ich schon was anfangen, danke.

                Dann werd ich mein Script mal erweitern im Laufe des Tages.
                Danke nochmal.

                mfg
                Edit:

                Bei deiner Zeile mit dem Ä etc. bekomme ich: "imagettfbbox(): any2eucjp(): something happen" ... hab ich ne falsche Codierung?
                Zuletzt geändert von Blackgreetz; 30.09.2009, 08:23.

                Kommentar


                • #23
                  Zitat von Blackgreetz Beitrag anzeigen
                  Edit:

                  Bei deiner Zeile mit dem Ä etc. bekomme ich: "imagettfbbox(): any2eucjp(): something happen" ... hab ich ne falsche Codierung?
                  So.. nochmal kurz zitiert.. weil man das sonst ja leicht übersieht, glaub ich..

                  Über google hab ich bisher keine sinnvolle Lösung gefunden..

                  Kommentar


                  • #24
                    Zitat von Blackgreetz Beitrag anzeigen
                    So.. nochmal kurz zitiert.. weil man das sonst ja leicht übersieht, glaub ich..

                    Über google hab ich bisher keine sinnvolle Lösung gefunden..
                    Ich hab es tatsächlich übersehen. Bei mir ist alles UTF-8. Also sollte dein Script in dem du die Funktionen definierst auch UTF-8 sein.
                    [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
                    Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
                    Super, danke!
                    [/COLOR]

                    Kommentar


                    • #25
                      Das hatte ich auch über google gefunden, aber da stand, dass es nicht funktioniert.

                      Ich hab nun meine Dateien laut notepad2 auch auf UTF-8 geändert. .. und auch in einem Webeditor hab ich UTF-8 eingestellt.
                      Ich bekomme immer noch die Fehlermeldung.

                      Komischer Weise hatte ich sie schonmal weg, nur weiß ich leider nicht warum...

                      Selbst wenn ich utf8_encode auf den ä-String anwende, funktioniert es nicht, falls es dann hätte gehen müssen..

                      Muss man in den php-Einstellungen irgendwas beachten?

                      Kommentar


                      • #26
                        Mh, da weiß ich jetzt grad auf die Schnelle auch nicht weiter. Bei mir ist das ganze System auf UTF-8 geeicht (nehme übrigens Notepad++, meintest du den auch?), daher muss ich mir darum selten Gedanken machen.

                        Versuch mal die Umlaute durch base64_decode("w4HDgsODw4TDhcSCxIw=") zu ersetzen.

                        Wenn du es nicht hinbekommst, kriegst du ihn wenigstens dazu, das Ä zu schlucken? Dann kannst du die anderen Zeichen entfernen und die Akzentlinie wird dann halt nur so hoch berechnet, dass deutsche Umlaute reinpassen.
                        [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
                        Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
                        Super, danke!
                        [/COLOR]

                        Kommentar


                        • #27
                          Nein, ich meine Notepad2
                          Nein, er will auch das "Ä" so nicht schlucken -> fehler

                          Allerdings kann ich auch im "text" keine Umlaute stehen haben. Die kommen dann ebenfalls nicht mit aufs Bild.

                          Also in der phpinfo steht, dass default-charset nicht angegeben ist. (falls das irgendwie Relevanz haben könnte..)

                          Kommentar


                          • #28
                            Zitat von Blackgreetz Beitrag anzeigen
                            Nein, ich meine Notepad2
                            Nein, er will auch das "Ä" so nicht schlucken -> fehler
                            Ok, Notepad2 kenne ich nicht. Und die Datei ist dann auch im UTF-8-Modus?

                            Zitat von Blackgreetz Beitrag anzeigen
                            Allerdings kann ich auch im "text" keine Umlaute stehen haben. Die kommen dann ebenfalls nicht mit aufs Bild.
                            Redest du hierbei von der Webseite oder vom Editor selbst?

                            Zitat von Blackgreetz Beitrag anzeigen
                            Also in der phpinfo steht, dass default-charset nicht angegeben ist. (falls das irgendwie Relevanz haben könnte..)
                            Glaub ich nicht, ist bei mir auch nicht angegeben.

                            Hat es mit dem Base64 geklappt?
                            Zuletzt geändert von AmicaNoctis; 30.09.2009, 21:41.
                            [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
                            Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
                            Super, danke!
                            [/COLOR]

                            Kommentar


                            • #29
                              Also es steht unten drunter, dass sie UTF-8 encodet ist ... gehe mal davon aus, dass das stimmt..

                              Ich meinte, dass wenn ich als Text z.b. angabe "Der ultimative Text gypÄtfmh". Dort ist alles außer das Ä zu sehen... (abgesehen davon, dass da dann keine Fehlermeldung mehr kommt, sondern es einfach ignoriert wird... - wieso nur ... )

                              Nein, mit base64 kam leider der gleiche Fehler..

                              Also im Moment teste ich auf einen Testserver (Freehoster) .. morgen teste ich dann auf dem richtigen Webspace ... allerdings kann ich im Moment echt nicht verstehen, warum es atm nicht klappt..

                              Ich lad mir gleich nochmal notepad++ runter und überprüf es da mit dem utf-8..

                              Kommentar


                              • #30
                                Wenn das Ä nicht dargestellt wird, kann das aber auch an der Schriftart liegen. Insbesondere "Billigfonts" haben oft nur einen sehr begrenzten Zeichenvorrat und der ist manchmal noch nicht mal richtig geordnet. Versuch's mal testweise mit einer Unicode-Standardschrift, z. B. "Lucida Sans Unicode", "Tahoma" oder "Times New Roman".

                                Edit: Ausweichvariante:

                                PHP-Code:
                                function getTypographicHeights ($pFont$pSize) {
                                    
                                $bBox imagettfbbox($pSize0$pFont"x");
                                    
                                $xLine $bBox[1] - $bBox[7];
                                    
                                $bBox imagettfbbox($pSize0$pFont"p");
                                    
                                $pLine $xLine $bBox[1] + $bBox[7];
                                    
                                $bBox imagettfbbox($pSize0$pFont"k");
                                    
                                $kLine $bBox[1] - $bBox[7];
                                    
                                $bBox imagettfbbox($pSize0$pFont"H");
                                    
                                $hLine $bBox[1] - $bBox[7];
                                    return array(
                                $pLine0$xLine$hLine$kLine$kLine $pLine);

                                Das befreit dich erstmal von den Sonderzeichen, beruht aber wieder nur auf der Annahme, dass die Akzenthöhe selten größer ist als die Unterlänge. Dadurch vergrößert sich aber bei Schriften mit betonten Unterlängen der gesamte Zeilenabstand, weswegen dieser Code nur als Notfall-Hack zu verstehen ist.
                                Zuletzt geändert von AmicaNoctis; 30.09.2009, 22:07.
                                [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
                                Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
                                Super, danke!
                                [/COLOR]

                                Kommentar

                                Lädt...
                                X