darstellung von thumbnails

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • darstellung von thumbnails

    hi!

    also, hab ein galerie script, nur leider ist es so, das die thumbnails ziemlich schlecht quali haben. wie kann ich das beheben?
    was muss ich einbauen oder welchen befehl muss ich da verwenden?


    gruß crain

  • #2
    schau ma unter tutorials.. da ist ein script das automatisch thumbnails erstellt.

    Comment


    • #3
      goile problembeschreibung ....

      imagecreatetruecolor()
      Die Zeit hat ihre Kinder längst gefressen

      Comment


      • #4
        hab ja imagecreatetruecolor(), und das darstellen der thumbnails klappt ja auch wunderbar, nur die qualität der thumbnails ist schlecht, die sind so verpixelt und verschwommen...

        Comment


        • #5
          Relevanter Codeschnipsel?

          Comment


          • #6
            Naja ich machs immer so....

            Ich lege einen festen Wert fest, z.B. 8...

            $divide = 8;

            Dann lese ich die höhe / die breite des "richtigen" bildes ein mit

            $size = getimagesize();

            dann errechne ich mir die neue höhe / breite mit

            $width = round($size[0] / $divide);

            und das wird dann imagecreatetruecolor übergeben....

            PHP Code:
              $image "$res_imagefile";
                
            $divide 10;
                
            $size getimagesize($image); 
                
            $width round($size[0]/$divide); 
                
            $height round($size[1]/$divide); 
                
            $im imagecreatefromjpeg($image); 
                
            $dest imagecreatetruecolor($width,$height); 
                
            imagecopyresized($dest,$im,0,0,0,0,$width,$height,$size[0],$size[1]);
                
              
            imagejpeg($dest"../../thumbnails/".$ordner."/thumbnail_".$image.""); 
            Code ist schon recht alt....
            Für alle die Fehler suchen, gibts gratis tolle Debuggingmöglichkeiten:
            var_dump(), print_r(), debug_backtrace und echo.
            Außerdem gibt es für unsere Neueinsteiger ein hervorragendes PHP Tutorial zu PHP 4 und PHP 5 (OOP)
            Es heißt $array['index'] und nicht $array[index]! Und nein, das ist nicht egal!
            Dieses Thema lesen, um Ärger im Forum und verzögerte Hilfen zu vermeiden.

            Comment


            • #7
              <?php

              header("Cache-Controll: no-cache, must revalidate");

              $f = session_id();
              if($f == "") session_start();

              ?>

              <TITLE>Bildergalerie</TITLE>
              <?php
              echo $Style; // Stylesheet einfügen
              ?>
              </HEAD>
              <!-- Seitenbeginn mit Hintergrundfarbe -->
              <Body bgcolor="000317">
              <FONT FACE='verdana' COLOR="ffffff">
              <TABLE>
              <TR><TH WIDTH="10%"></TH><TH><TH>
              <?php
              echo "<TABLE BORDER=0 BGCOLOR='".$Tabellenhintergrundfarbe."' CELLSPACING=0 CELLPADDING=5 BACKGROUND='".$Tabellenhintergrundbild."'>";
              ?>
              <TR><TD></TD><TD WIDTH='80%'>
              <?php

              $Bildzaehler=0;
              // Variablendeklaration ----------------------------------------------------------------

              $Etikettenbreite = 150; // <--- Zentrale Angabe der Etikettenbreite in Pixel
              $BilderZeile = 4; // <--- Anzahl der Bilder je Zeile
              $Rahmenbreite = 0; // <--- Rahmenbreite um Bilder einstellen
              //Bilder abrufen und Tumbnails erstellen -------------------------------------------
              $verz=opendir(".");
              $Url=$_SERVER["REQUEST_URI"] ;
              $UrlZerlegt=explode("?",$Url);
              $Aufrufprog=$UrlZerlegt[0];

              if (!isset($HTTP_GET_VARS["Bildauswahl"])){

              $Bildtitel="<TR>";
              print"<TABLE><TR>"; //<-------------------------- Tabelle beginnen !!!!!!
              /*
              *******************************************************
              ** Tumbnailordner abfragen und **
              ** wenn nicht vorhanden anlegen **
              *******************************************************
              */
              if (!is_dir("TN")){
              mkdir("TN",0777);
              }
              /*
              *******************************************************
              ** Bilder einzeln durchgehen **
              *******************************************************
              */

              while ($Datei=readdir($verz)){
              if (is_file($Datei)){
              $Dateierweiterung=pathinfo($Datei);
              $Dateierweiterung=$Dateierweiterung["extension"];
              if (strlen($Datei)>3 && $Datei<>"Thumbs.db"){
              if ($Dateierweiterung=="jpg" or $Dateierweiterung=="JPG"){
              // Bilddaten feststellen
              /*
              *******************************************************
              ** Tumbnail abfragen und **
              ** wenn nicht vorhanden anlegen **
              *******************************************************
              */

              if (is_file("$Datei")){
              $Bildzaehler++;
              if ($Bildzaehler>$BilderZeile){
              print"</TR><TR>";
              $Bildzaehler=1;
              //Echo $Bildtitel;
              print"</TR><TR>";
              $Bildtitel="<TR>";
              }
              if (!is_file("TN/"."TN".$Datei)){
              $size=getimagesize($Datei);

              $breite=$size[0];
              $hoehe=$size[1];
              $neueBreite=100; // Tumbnailbreite eingeben ----------------
              if ($breite<$hoehe){
              $neueBreite=$neueBreite*0.70;
              }
              $neueHoehe=intval($hoehe*$neueBreite/$breite);


              $altesBild=ImageCreateFromJPEG($Datei);
              $neuesBild=imagecreateTruecolor($neueBreite,$neueHoehe);
              ImageCopyResized($neuesBild,$altesBild,0,0,0,0,$neueBreite,$neueHoehe,$breite,$hoehe);

              ImageJPEG($neuesBild,"TN/"."TN".$Datei,"50"); //$Pfad.
              }
              }
              // Bildlink einfügen

              print "<TD><CENTER><A HREF='".$Datei."' TARGET='_blank'><IMG SRC='"."TN/"."TN".$Datei."' BORDER=$Rahmenbreite></A></CENTER></TD>".chr(13);
              $Bildtitel=$Bildtitel."<TD><CENTER>$Datei</CENTER></TD>";
              }
              }

              }
              }
              //print $Bildtitel;
              print "</TABLE>";
              // Funktionsende bei Aufruf ohne Bildauswahl
              }
              else {
              /*
              *******************************************************
              ** Funktionsaufruf mit **
              ** Bildauswahl **
              *******************************************************
              */
              $Auswahl = $HTTP_GET_VARS["Bildauswahl"];
              echo "<TABLE>"; //<-------------------------- Tabelle beginnen !!!!!!
              echo "<TR>";
              echo "<TD><IMG SRC='".$HTTP_GET_VARS["Bildauswahl"]."'></TD>";
              echo "</TR>";
              echo "<TR>";
              echo "<TD><CENTER><A HREF='".$Aufrufprog."' TARGET='_self'> zurück zur Auswahl </A></TD>";
              echo "</TR>";
              echo "</TABLE>";
              }


              ?>

              das is der code von dem Bildergalerie script heir auf der page. prob: der erstellt scheiß verpixelte thumbnails und auch die orginal bilder werden verpixelt

              Comment


              • #8
                Da wird der "Übeltäter" evtl. lauern:
                PHP Code:
                ImageJPEG($neuesBild,"TN/"."TN".$Datei,"50"); //$Pfad 
                Ändere das mal zu:
                PHP Code:
                ImageJPEG($neuesBild,"TN/"."TN".$Datei,100); //$Pfad 
                (Die Zahl am Ende gibt die Qualität an!)

                Gruß,
                Christian

                €: Hab die Zahl (Qualitätsangabe) ohne "" gesetzt. Anders isses AFAIK unüblich(falsch?).

                Comment


                • #9
                  nimm zusätzlich noch imagecopyresampled() ... da ist die kantenglättung (etwas) besser als bei *resized.
                  Kissolino.com

                  Comment

                  Working...
                  X