Bildausschnitt: effizienteste Variante?

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

  • Bildausschnitt: effizienteste Variante?

    Ich arbeite an einem map, in das pixelgenau eingezoomt werden kann, daher möchte ich wenn möglich nicht mit bereits existierenden Bildausschnitten arbeiten, sondern diese mit imagecopy direkt erstellen lassen. Macht das Sinn oder wird dann jedesmal das gesamte Bild geladen? Falls ihr effizientere Methoden im Kopf habt dürft ihr die gerne mitteilen

    greets, Putterfly

  • #2
    Genauer bitte - wo kommt das Quellmaterial her? Aus einem riesengroßen File, in das eingezoomt werden kann?

    Tendenziell ist es schon so, daß live-Bildoperationen mit der GD (Oder einem anderen Tool wie ImageMagick) sehr rechenintensiv sind. Je nach Problemstellung könnte es sich also lohnen, über Caching nachzudenken, also das Vorherberechnen einzelner Ausschnitte. Dü könntest z.B. gezoomte "Brocken" laden und via CSS dann die pixelgenaue Positionierung bestimmen. Zu mehr Denkanstößen brauchts mehr Info.

    Kommentar


    • #3
      Genauer bitte - wo kommt das Quellmaterial her? Aus einem riesengroßen File, in das eingezoomt werden kann?
      Ich dachte mir eher für jede Zoom-Stufe ein Bild zu erstellen, so dass der Bildausschnitt 1:1 übernommen werden kann.

      Dü könntest z.B. gezoomte "Brocken" laden und via CSS dann die pixelgenaue Positionierung bestimmen.
      Das klingt schon mal nicht schlecht! Was caching angeht muss ich mich allerdings erst ein wenig informieren.

      Was das File angeht: die maximalgrösse dürfte sich wohl um ca. 1k x 4k Pixel handeln, Zoom-Ebenen gibt es maximal 3.

      Danke schonmal!

      Kommentar


      • #4
        Was caching angeht muss ich mich allerdings erst ein wenig informieren.
        Mit Caching meinte ich tendenziell eher Eigenbau, also die imagecopy()-Operationen im Voraus durchzuführen und die Ergebnisse in nummerierten Files abzulegen, die dann ohne große Bildoperationen eingeblendet werden. Ändern sich die Kartendaten, läßt man das Skript wieder einmal durchlaufen und fertig.

        Kommentar


        • #5
          Original geschrieben von Putterfly
          Was das File angeht: die maximalgrösse dürfte sich wohl um ca. 1k x 4k Pixel handeln
          Also bei true color schon mal rund 12 MB - das dürfte das standardmässige memory limit von 8 MB schon sprengen.
          Hast du die Möglichkeit, es hochzusetzen ...?
          I don't believe in rebirth. Actually, I never did in my whole lives.

          Kommentar


          • #6
            Ok, thx für die Anmerkung.

            Werde mal beide Varianten testen, aber wahrscheinlich ist mit cache schon schneller...

            Kommentar


            • #7
              Also bei true color schon mal rund 12 MB - das dürfte das standardmässige memory limit von 8 MB schon sprengen.
              Hast du die Möglichkeit, es hochzusetzen ...?
              bezweifle ich, externer Server, kann aber notfalls das Bild splitten.

              Mal gucken, ich gebe Bescheid sobald ich es getestet habe!

              Kommentar


              • #8
                Also, habe erstmals den Test mit imagecopy gemacht, und es zeigt immense Unterschiede ob ich das ganze Bild oder nur einen kleinen Ausschnitt nehme!

                Hier ein 200x200px Ausschnitt: http://www.pfimi-adelboden.ch/lukas/map/map.php

                Hier ein 3000x2000px Ausschnitt: http://www.pfimi-adelboden.ch/lukas/map/map1.php

                php code ist bei beiden der selbe, mit Ausnahme der Grösse des Bildausschnittes natürlich.

                Werde es später noch mit einem grösseren file probieren, das 8MB überschreitet.

                Kommentar


                • #9
                  Also, ich habe das Bild ersetzt, jetzt sind es 3'000 x 6'000 px (13MB)!

                  Funktioniert immer noch, einzig die Rechenzeit wird etwas länger. Das positive daran: für den Benutzer benötigt das kleine Bild immer noch lediglich 4kb, das grosse 600kb.

                  Aber werde das Bild wohl in ein paar Einzelteile aufsplitten damit der Server nicht gleich überlastet wird

                  Kommentar

                  Lädt...
                  X