AllesMeins: Thumbnails erstellen und Transparenz beibehalten

Beitrag lesen

Hiho,

ich versuche mich gerade an einem kleinen Script das aus hochgeladenen Bildern thumbnails erstellt. das klappt auch wunderbar nur leider geht dabei transparenz von gifs bzw. pngs verloren. Wie muss ich das nachfolgende erweitern damit auch die Transparenz erhalten bleibt?

bilder.php (gekürzt):

================================
$pic_infos = getimagesize($_FILES['userfile']['tmp_name']);

/*Faktor ermitteln mit dem das Bild verkleinert werden muss damit es eine gewisse maximalgrösse ($max_breite bzw. $max_hoehe) nicht übersteigt*/

if($pic_infos[0] > $max_breite){
  $faktor_b = $max_breite / $pic_infos[0];
}

if($pic_infos[1] > $max_hoehe){
  $faktor_h = $max_hoehe / $pic_infos[1];
}
$faktor = min($faktor_h,$faktor_b);

/*Das eben hochgeladenen Bild zum bearbeiten öffnen*/
if($pic_infos[2] == 2){
  $source = imagecreatefromjpeg($_FILES['userfile']['tmp_name']);
} elseif($pic_infos[2] == 3) {
  $source = imagecreatefrompng($_FILES['userfile']['tmp_name']);
}  elseif($pic_infos[2] == 1) {
  $source = imagecreatefromgif($_FILES['userfile']['tmp_name']);
}

/*Zielbild generieren*/
$target = imagecreatetruecolor($pic_infos[0] * $faktor,$pic_infos[1] * $faktor);

/*Hochgeladenes Bild auf neues Bild verkleinert kopieren*/
  imagecopyresampled($target, $source, 0, 0, 0, 0, $pic_infos[0] * $faktor, $pic_infos[1] * $faktor, $pic_infos[0], $pic_infos[1]);

/*Abhängig vom Format der Quelldatei die Zieldatei schreiben*/
  if($pic_infos[2] == 2){
   imagejpeg($target, "news/images/" . $_FILES['userfile']['name']);
  } elseif($pic_infos[2] == 3) {
   imagepng($target, "news/images/" . $_FILES['userfile']['name']);
  }  elseif($pic_infos[2] == 1) {
   imagegif($target, "news/images/" . $_FILES['userfile']['name']);
  }

================================
Hmm, ist leider ziemlich viel Code geworden, aber mehr kann ich wohl schlecht rauskürzen. Ansonsten dürfte die Funktionsweise wohl nicht mehr klar werden. Ich hoffe irgendwer ist bereit sich das mal anzusehen und mir zu helfen...

Grüsse

Marc