imagecreatefromjpg

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

  • imagecreatefromjpg

    Sorry, kann mir nicht vorstellen, dass ich der einzige bin, der das Problem hat, aber ich konnte keinen Beitrag dazu finden.

    Ich habe das Problem, dass ich von Bildern Vorschaubilder herstellen mag. dazu soll man wohl "imagecreatefromjpg" benutzen, jedoch habe ich das problem, dass die Qualität sehr zu wünschen übrig lässt. mein PHP zeigt nu an, das ich GD 2.0 habe, woran kann das wohl liegen? oder gibt es eine bessere Lösung?


    Nun habe ich die Datei auf den Server eines Kollegen gepackt und dort treten keine Fehler auf. Woran kann das liegen, dass auf einem Server die Datei falsch verkleinert wird und beim anderen nicht? Ich verstehe das nicht.
    Zuletzt geändert von sebi75; 29.08.2002, 13:10.

  • #2
    soweit ich mich erinnern kann, kann man den Kompressionsfaktor angeben. Frag mich aber nicht wie, hab's noch nie gemacht.

    php-Entwicklung | ebiz-consult.de
    PHP-Webhosting für PHP Entwickler | ebiz-webhosting.de
    die PHP Marktplatz-Software | ebiz-trader.de

    Kommentar


    • #3
      ja stimmt, wird nach meiner Erinnerung mit dem "imagejpg gemacht, habe ich auch auf 100 gesetzt, klappt trotzdem nicht

      Kommentar


      • #4
        dafür eignet sich imagecopyresampled() vielleicht besser. Hab's zwar auch noch nie gebraucht, aber wenn du dir die Kommentare auf dieser Seite http://www.php.net/manual/de/functio...yresampled.php anschaust, scheint das Ergebnis für Thumbnails ideal zu sein. Allerdings wohl nicht "on the fly".

        Noch gleich hier ne Anmerkung von php.net:

        Anmerkung: This function was added in PHP 4.0.6 and requires GD 2.0.1 or later

        Kommentar


        • #5
          resampled

          Ich habe es ausprobiert und doch zeigt er das Bild wieder in ner schlechten Qualität an, ich befürchte das es mit dem Imagejpeg zusammenhängt und er die Quality einstellung nicht anerkennt. Denn ich kann die ändern wie ich mag, es tut sich nichts
          aber danke für den tip

          Kommentar


          • #6
            okay, aber den Parameter, den du da änderst, der hat doch nichts mit dem resample oder resize zu tun, sondern mit der "Qualität", mit der das Bild zum Browser geschickt wird, d.h. man kann hier sozusagen eine Low-Quality an den Browser schicken, oder versteh ich das falsch?

            Kommentar


            • #7
              Quality

              Richtig...ich habe die Fehlerquelle ja noch nicht rausfinden können, dachte zunächst es läge an des resize teil, scheint es aber nicht. Es scheint auch nicht unbedingt mit imagejpeg zu tun haben, sondern am Server und dessen einstellung, aber ich weiß nicht, was da nicht klappt, dass es bei zwein nicht funktioniert, aber beim drittem

              Kommentar


              • #8
                Wie wär's mal mit etwas Quellcode ... dieses theoretische Lamentieren bringt überhaupt nichts ... !
                carpe noctem

                [color=blue]Bitte keine Fragen per EMail ... im Forum haben alle was davon ... und ich beantworte EMail-Fragen von Foren-Mitgliedern in der Regel eh nicht![/color]
                [color=red]Hinweis: Ich bin weder Mitglied noch Angestellter von ebiz-consult! Alles was ich hier von mir gebe tue ich in eigener Verantwortung![/color]

                Kommentar


                • #9
                  versuch mal, ob diese funktion hilft.
                  ruf sie z.b. so auf:

                  $im = imageScale("poop.jpg",200,200,TRUE);

                  PHP-Code:
                  function imageScale ($filename$maxbreite$thumbhoehe$truecolor=FALSE){
                                  
                  $file fopen($filename"r");
                                  
                  $data fread($filefilesize($filename));
                                  
                  fclose($file);

                                  
                  $imgA imagecreatefromstring($data);
                                  
                  $breite1 imagesx($imgA);
                                  
                  $hoehe1 imagesy($imgA);

                                  
                  // enable this if compiled with bc_math
                                  //bcscale(2);
                                  
                  $verhaeltnis $hoehe1 $breite1;
                                  
                  $zwischenbreite = @round($thumbhoehe $verhaeltnis);

                                  if (
                  $zwischenbreite $maxbreite){
                                          
                  $hoehe2 = @round($maxbreite $verhaeltnis);
                                          
                  $breite2 $maxbreite;
                                  }else{
                                          
                  $hoehe2 $thumbhoehe;
                                          
                  $breite2 $zwischenbreite;
                                  }

                                  if(
                  $truecolor){
                                          
                  $imgB = @ImageCreateTrueColor($breite2,$hoehe2);
                                          @
                  ImageCopyResampled($imgB$imgA0,00,0$breite2,$hoehe2$breite1,$hoehe1);
                                  }else{
                                          
                  $imgB = @imagecreate($breite2,$hoehe2);
                                          @
                  imagecopyresized($imgB$imgA0,00,0$breite2,$hoehe2$breite1,$hoehe1);
                                  }
                                  return 
                  $imgB;
                          } 

                  Kommentar

                  Lädt...
                  X