Enrico: Geänderter Code zu "Selbstgebasteltes Skript zum Verkleinern von Grafiken erzeugt keine Thumbnails"

Beitrag lesen

Hallo dedlfix,

und hier der neue Code, den ich nun direkt mit Parametern aufrufe:

   $Ausgangsgrafik = $_GET["A"];

   if (isset ($_GET["B"]))
      $Maximale_Breite = $_GET["B"];

   if (isset ($_GET["H"]))
      $Maximale_Hoehe = $_GET["H"];

   $Informationen         = getimagesize ($Ausgangsgrafik);
   $Urspruengliche_Breite = $Informationen[0];
   $Urspruengliche_Hoehe  = $Informationen[1];

   if ($Maximale_Breite)
      $Faktor = $Maximale_Breite / $Urspruengliche_Breite;
   else
      if ($Maximale_Hoehe)
         $Faktor = $Maximale_Hoehe / $Urspruengliche_Hoehe;

   $Neue_Breite = round ($Urspruengliche_Breite * $Faktor);
   $Neue_Hoehe  = round ($Urspruengliche_Hoehe  * $Faktor);

   $Kopie = imagecreatefrompng ($Ausgangsgrafik);
   $Verkleinerte_Kopie = imagecreatetruecolor ($Neue_Breite, $Neue_Hoehe);
   $Transparenz = imagecolortransparent ($Kopie);

   if ($Transparenz != -1)
   {
      $Transparente_Farbe = imagecolorsforindex ($Kopie, $Transparenz);
      $Transparenz = imagecolorallocate ($Verkleinerte_Kopie, $Transparente_Farbe["red"], $Transparente_Farbe["green"], $Transparente_Farbe["blue"]);
      imagefill ($Verkleinerte_Kopie, 0, 0, $Transparenz);
      imagecolortransparent ($Verkleinerte_Kopie, $Transparenz);
   }
   else
   {
      imagealphablending ($Verkleinerte_Kopie, false);
      $Alpha = imagecolorallocatealpha ($Verkleinerte_Kopie, 0, 0, 0, 127);
      imagefill ($Verkleinerte_Kopie, 0, 0, $Alpha);
      imagesavealpha ($Verkleinerte_Kopie, true);
   }

   imagecopyresampled ($Verkleinerte_Kopie, $Kopie, 0, 0, 0, 0, $Neue_Breite, $Neue_Hoehe, $Urspruengliche_Breite, $Urspruengliche_Hoehe);

   header ("Content-type: IMAGETYPE_PNG");
   imagepng ($Verkleinerte_Kopie, null);

Gruß, Enrico