Qualität beim Image Resize

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

  • Qualität beim Image Resize

    Hallo,

    ich habe ein Problem mit dem resizen von per Webinterface hochgeladenen Bildern.
    Der Upload funktioniert einwandfrei...

    Nur leider lässt die Qualität der Bilder zu wünschen übrig.

    Ich lade ein Bild hoch, erstelle dann eine komprimierte, verkleinerte Version, wenn die Ausmaße des Bildes 640x480 überschreiten
    und erstelle dann noch ein Thumbnail für die Übersicht.

    Hier mal ein Beispiel:

    Original:


    Resized:


    Thumbnail:


    Zufriff auf den Server habe ich keinen.
    Imagemagick ist nicht installiert (sonst würde ich hier nicht fragen )
    PHP Version ist 4.2.3 (GDLib 2.xx habe ich nicht)

    Gibt es noch andere Möglichkeiten der Realisierung? z.B.: Perl,...
    Zuletzt geändert von hondapower; 08.02.2003, 21:16.

  • #2
    da gibts nen trick
    EDIT:
    da solls nen trick geben


    verkleiner solange auf 50% bis du etwas über der gewünschten größe bist und dann eben auf 50-99%

    habs zwar nie wirklich probiert, aber ein grafiker bläute mir das dann mal ein ..

    zum coden gehst du so vor .. % ausrechnen und dann mit if-else entscheiden ob 50% oder eben anders
    mfg,
    [color=#0080c0]Coragon[/color]

    Kommentar


    • #3
      Genau das ist bei dem Beispiel aus dem 1. Posting im Prinzip geschehen... (ungewollt)
      Das Original war 800x600 Pixel...
      50% wären 400x300 gewesen....
      Also würde es nicht mit 50% verkleinert werden sondern mit 75%.

      So ists dann auch geschehen...
      Und die Qualität ist ja nun nicht wirklich gut, oder?

      Sag Bescheid, wenn ich dich falsch verstanden habe.

      Anderes Beispiel (640x480 soll rauskommen):
      Original ist 1600x1200
      Nach dem ersten Resizen: 800x600
      Danach wäre es wieder 400x300 => kein resizen mit 50% mehr,
      sondern wieder nur 75% um auf die gewünschten 640x480 zu kommen, oder?

      Mir geht es im Prinzip hauptsächlich um die verkleinerten Bilder und nicht um die Thumbnails... auf denen erkennt man eh nicht wirklich viel, auch wenn da die Qualität gut ist...

      Hab ich mit der imageCopyResampled() Funktion Vorteile, welche ab PHP 4.3 und GDLib 2.xx verfügbar ist?

      Kommentar


      • #4
        Wenn du das Bild mit der
        PHP-Code:
        imagecreate() 
        funktion erstellt hast, dann erstelle das Bild mal mit
        PHP-Code:
        imagecreatetruecolor() 
        mfg
        Günni


        Praxis: Jeder kann´s, aber keiner weiß wie´s geht...
        Theorie: Jeder weiß wie´s geht, aber keiner kann´s ...
        Microsoft vereint Praxis und Theorie: Nix geht und keiner weiß warum
        City-Tiger - Online durch die Straßen tigern...

        Kommentar


        • #5
          Original geschrieben von Günni
          dann erstelle das Bild mal mit
          PHP-Code:
          imagecreatetruecolor() 
          1. Note: This function was added in PHP 4.0.6 and requires GD 2.0.1 or later

          2. würde mich auch intressieren

          Kommentar


          • #6
            Bei GD > 2.0 kannst du diese Funktion nutzen zum verkleinern von Bildern. Dateigröße und Qualität sind in aller Regel besser als selbst bei Photoshop.

            PHP-Code:
            function image_resize($input,$output,$width_old,$height_old,$width_new,$height_new) {

            $image_old ImageCreateFromJPEG("$input");
            $image_new ImageCreatetruecolor($width_new,$height_new);
            ImageCopyResampled($image_new,$image_old,0,0,0,0,$width_new,$height_new,$width_old,$height_old);
            ImageJPEG($image_new,"$output","75");
            ImageDestroy($image_new);


            Contentpapst 3.1 - Der Preisbrecher unter den Content-Management-Systemen
            www.contentpapst.de / WYSIWYG-Editor, Rechtesystem, eigene Module per GUI... // Demoversion
            [color=red]Ab sofort in Version 3.1![/color] / dazu auch Standalone Shop-System CP::Shop uvm.

            Kommentar


            • #7
              Okay...
              dann werde ich jetzt mal versuchen meinen WebHoster von PHP 4.3 zu überzeugen...
              Da sollte die GD > 2.0 theoretisch mit dabei sein, wenn man sie aktiviert, (und das tut er standardmäßig)

              Sonst noch Vorschläge, die zum Thema beitragen und nicht GD > 2.0 erfordern

              Kommentar


              • #8
                Zwei Möglichkeiten fallen mir zumindest noch ein, hängt aber auch stark vom Hoster ab:

                1) ImageMagick nutzen
                2) externes Grafik-Programm wie z.B. GIMP ansteuern und so umwandeln lassen
                Contentpapst 3.1 - Der Preisbrecher unter den Content-Management-Systemen
                www.contentpapst.de / WYSIWYG-Editor, Rechtesystem, eigene Module per GUI... // Demoversion
                [color=red]Ab sofort in Version 3.1![/color] / dazu auch Standalone Shop-System CP::Shop uvm.

                Kommentar


                • #9
                  Also:

                  1. Imagemagick: Habe ich angefragt --> Wird nicht installiert, da es in Vergangenheit Probleme damit gegeben haben soll

                  2. Wie mache ich sowas??? Mit welcher Wahrscheinlichkeit wird GIMP überhaupt auf einem Webserver bei einem Hoster vorhanden sein?

                  Thx

                  Kommentar


                  • #10
                    Müsste man nachfragen, aber wenn Linux installiert ist als OS, dann ist GIMP doch praktisch standardmäßig dabei.
                    Contentpapst 3.1 - Der Preisbrecher unter den Content-Management-Systemen
                    www.contentpapst.de / WYSIWYG-Editor, Rechtesystem, eigene Module per GUI... // Demoversion
                    [color=red]Ab sofort in Version 3.1![/color] / dazu auch Standalone Shop-System CP::Shop uvm.

                    Kommentar


                    • #11
                      Ich dachte eigentlich, das man das bei der Installation genau festlegen kann, welche Pakete, Programme man installieren möchte...
                      Im Prinzip verbraucht jedes zuviel installierte Modul, Paket, usw. Ressourcen (egal welcher Art).
                      Wäre also bei einem Server im Prinzip sinnlos irgendetwas grafisches zu installieren, oder?

                      Kommentar


                      • #12
                        sagt mal kann ich irgendwie abfragen welche gd version drauf is und dann sagen if($gd < 2.0.1) { kage ohne true color} else { true color zeug }?!

                        weil dann könnte man die scripte ohne umschreiben auf beliebigen servern laufen lassen und hat dann immer die best mögliche quali...was meint ihr?

                        geht sowas direkt oder muss ich das raussuchen lassen?!
                        Zuletzt geändert von BloodReaver; 07.02.2003, 13:12.
                        Man lernt nie aus...

                        ...und wenn man's doch tut braucht man sich auch nicht schämen!

                        Kommentar


                        • #13
                          Eine Idee wäre das schon...
                          da bist du auf jeden Fall schon mal gut auf ein Update des Webhosters vorbereitet...

                          Wenn du dir phpinfo() ausgeben lässt steht die GD Version mit drin...
                          musst du "nur" extrahieren....

                          Kommentar


                          • #14
                            ich find grad das es ab 4.3.0 auch eine extra funktion gd_info gibt aber ich denke wenn ich das aus phpinfo extrahier bin ich besser dran, weil das läuft scho länger...was meint ihr?
                            Man lernt nie aus...

                            ...und wenn man's doch tut braucht man sich auch nicht schämen!

                            Kommentar


                            • #15
                              das ist doch viel zu redundant, wenn du das bei jedem aufruf deiner verkleinerung-funktion machen willst; die php-version auf dem server ändert sich doch nicht andauernd.


                              ich würde eher die gleiche funktion zwei mal definieren, einmal in der version für alte gd-lib und einmal für die neuere, und dann kann man je nach auf dem jeweiligen server vorhandener version die funktion die man nicht braucht bei der installation des scriptes auskommentieren...
                              I don't believe in rebirth. Actually, I never did in my whole lives.

                              Kommentar

                              Lädt...
                              X