Ankündigung

Einklappen
Keine Ankündigung bisher.

Thumbsproblem bei Bilder > 1 MB

Einklappen

Neue Werbung 2019

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

  • Thumbsproblem bei Bilder > 1 MB

    Hallo Leute,

    bin verzweifelt.
    Habe folgenden Code geschrieben.
    ////////////////////////////////////
    <?
    $PicPathIn="";
    $PicPathOut="thumbs/";

    // Orginalbild
    $bild="2.jpg";

    // Bilddaten ermitteln
    $size=getimagesize("$PicPathIn"."$bild");
    $breite=$size[0];
    $hoehe=$size[1];
    $neueBreite=400;
    $neueHoehe=intval($hoehe*$neueBreite/$breite);

    if($size[2]==1) {
    // GIF
    $altesBild=ImageCreateFromGIF("$PicPathIn"."$bild" );
    $neuesBild=imageCreate($neueBreite,$neueHoehe);
    imageCopyResized($neuesBild,$altesBild,0,0,0,0,$ne ueBreite,$neueHoehe,$breite,$hoehe);
    imageGIF($neuesBild,"$PicPathOut"."TN"."$bild");
    }

    if($size[2]==2) {
    // JPG
    $altesBild=ImageCreateFromJPEG("$PicPathIn"."$bild ");
    $neuesBild=imageCreatetruecolor($neueBreite,$neueH oehe);
    imageCopyResized($neuesBild,$altesBild,0,0,0,0,$ne ueBreite,$neueHoehe,$breite,$hoehe);
    ImageJPEG($neuesBild,"$PicPathOut"."TN"."$bild");
    }

    if($size[2]==3) {
    // PNG
    $altesBild=ImageCreateFromPNG("$PicPathIn"."$bild" );
    $neuesBild=imageCreate($neueBreite,$neueHoehe);
    imageCopyResized($neuesBild,$altesBild,0,0,0,0,$ne ueBreite,$neueHoehe,$breite,$hoehe);
    ImagePNG($neuesBild,"$PicPathOut"."TN"."$bild");
    }

    echo "Altes Bild:
    ";
    echo "<IMG SRC=\"$PicPathIn$bild\" WIDTH=\"$breite\" HEIGHT=\"$hoehe\">

    ";
    echo "Neues Bild:
    ";
    $Thumbnail=$PicPathOut."TN".$bild;
    echo "<IMG SRC=\"$Thumbnail\" WIDTH=\"$neueBreite\" HEIGHT=\"$neueHoehe\">";
    ?>
    ///////////////////////////////////

    Aber wenn ich ein ca. 1,5MB Bild für 2.jpg verwende dann macht er als Thumb nur ein schwarzes Bild!?!?! Was kann ich da machen will einfach nur große Dateien kleiner machen. Ausserdem übernimmt er die Farben nicht so wie ich will, die Qualität ist ziemlich schlecht. Kann man da was ändern?

    Hoffe ihr könnt mir helfen. Danke schon mal

    MfG

    Mister X

  • #2
    Hi,
    das Problem mit der Farbverfälschung hatte ich auch schon, bei manchen
    GDlib Versionen. Wenn es bei dir möglich ist, empfehle ich dir,
    ImageMagick zu nutzen. Diese Tool ist sehr viel flexibler und erziehlt
    teilweise sehr viel besser bikubische Bildumrechnungen und Dateigrößen.

    Kommentar


    • #3
      Re: Thumbsproblem bei Bilder &gt; 1 MB

      Zitat von misterx
      Ausserdem übernimmt er die Farben nicht so wie ich will, die Qualität ist ziemlich schlecht. Kann man da was ändern?
      Wenn du eine ausreichend aktuelel GD-Version benutzt, versuche mal statt imagecopyresized und imagecreate die Funktionen imagecopyresampled und imagecreatetruecolor.

      Zu deinem anderen Problem kann ich leider nichts sagen.

      mfG
      werbegeschenk
      [URL="https://www.quizshow.io/"]Create your own quiz show.[/URL]

      Kommentar


      • #4
        Hallo Leute,

        das mit den Bildern funtz jetzt. Aber das Problem mit den großen Bildern. Kann das ein Server Problem sein. Kann man da in der php.ini irgendwas einschränken???

        MfG

        misterx

        Kommentar


        • #5
          Zitat von misterx
          Aber das Problem mit den großen Bildern. Kann das ein Server Problem sein. Kann man da in der php.ini irgendwas einschränken???
          Ja: memory_limit

          Kommentar


          • #6
            ich brauche für das ganze imagick

            $handle = imagick_readimage ( "*.jpg");
            imagick_resize ($handle, "dest.jpg", [resizeparameter]);

            allerdings ist imagick auf pecl.php.net noch auf experimentell gesetzt.

            Kommentar


            • #7
              Zitat von Snipex
              ich brauche für das ganze imagick
              Du hättest weniger Probleme, wenn Du IM via shell_exec() & Co. nutzen würdest, weil IM autonom läuft und nicht von den 8MB PHP Memory abhängig ist. Jut, natürlich könntest Du dem Script mehr RAM schenken, aber dann solltest Du auch mehr RAM in die Kiste reinstecken, wenn mehr als ein paar Besucher erwartet werden.

              Kommentar


              • #8
                k

                klar ich gehe mal davon aus das dass ein script mit thumbnails auf nem webserver läuft od so... sollte ja genügend ram vorhanden sein...

                Kommentar


                • #9
                  Hallo Leute,

                  danke für die tollen Einträge.
                  Nur nochmal mit dem memory_limit ich habe es lokal umgestellt aber da gehen immer noch die großen Bilder?!?!
                  Habe als Webserver einen Account bei 1und1 auf dem php mysql uns so läuft. Wie bekomme ich das jetzt so gebacken?

                  MfG

                  Mister X

                  Kommentar


                  • #10
                    Zitat von misterx
                    Habe als Webserver einen Account bei 1und1 auf dem php mysql uns so läuft. Wie bekomme ich das jetzt so gebacken?
                    RTFM:
                    Zitat von PHP
                    memory_limit "8M" PHP_INI_ALL
                    memory_limit integer
                    Setzt den Maximalwert des Speichers in Byte, den ein Skript verbrauchen darf. Damit können schlecht geschriebene Skripte verhindert werden, die den gesamten verfügbaren Speicher eines Servers "auffressen". Um diese Option nutzen zu können, muss Sie während des Kompilierens aktiviert werden. D.h., dass Ihr Konfigurations-Zeile folgendes enthalten muss: --enable-memory-limit. Bachten Sie, dass Sie den Wert auf -1 setzen müssen, wenn Sie kein Speicherlimit wünschen.

                    Kommentar


                    • #11
                      jo danke

                      also wie kann ich jetzt dann den server umgehen damit er es auch bei großen bildern durchführt?
                      Habe gerade herausgefunden das der Server ein
                      memory_limit 40M
                      hat. Das dürft eigentlich für 2MB Bilder leicht reichen

                      Kommentar


                      • #12
                        Zitat von misterx
                        Habe gerade herausgefunden das der Server ein
                        memory_limit 40M hat. Das dürft eigentlich für 2MB Bilder leicht reichen
                        Ausprobieren. Mein Gefühl sagt mir, daß GD aus einem JPG erst mal im RAM ein ganz normales Pixelbild macht, um es zu bearbeiten. Und da werden aus einem 850 KB JPEG mal ganz locker und je nach Komprimierung 8 MB (unkomprimiert). Und wenn Du mit imagecopy* arbeitest, dann muß das neue Bild auch erst mal in den RAM rein, bevor es bei der Ausgabe auf JPG geschrumpft wird.

                        Kommentar


                        • #13
                          Es funktioniert ja nicht auf dem Server! Lokal ist Standart memory_limit 8MB eingetragen und da geht alles einwandfrei auch wenn ich es auf 1 oder -1 runterschraube geht es immer noch?? Kann es vielleicht an was anderem noch liegen? Oder auf einem ganz anderen weg die Bilder automatisch kleiner machen??

                          Kommentar


                          • #14
                            Zitat von misterx
                            Es funktioniert ja nicht auf dem Server! Lokal ist Standart memory_limit 8MB eingetragen und da geht alles einwandfrei auch wenn ich es auf 1 oder -1 runterschraube geht es immer noch??
                            1 wäre ein Byte, -1 wäre alles, was da ist.

                            Ich weiß doch nicht, wie Dein lokales PHP compiliert wurde...
                            mit oder ohne '--enable-memory-limit'?

                            Zusätzlich weiß ich auch nicht, welche GD Puretec verwendet.
                            Allerdings habe ich es schon erlebt, daß GD nicht mit allem klarkommt, was als JPG daherkommt.

                            Kommentar


                            • #15
                              Hier die GD von Puretec

                              gd
                              GD Support enabled
                              GD Version 2.0 or higher
                              FreeType Support enabled
                              FreeType Linkage with freetype
                              GIF Read Support enabled
                              GIF Create Support enabled
                              JPG Support enabled
                              PNG Support enabled
                              WBMP Support enabled

                              also dürfte es laufen?? Aber es tut es nicht!!!
                              wisst ihr Profis nichts konkretes was ich bei diesem Problem machen kann ich weiss echt nicht mehr was ich noch ändern könnte???

                              MfG

                              MisterX

                              Kommentar

                              Lädt...
                              X