Ahoj všem používám svou funkci na předělání velikosti obrázku (viz níže), ale teď jsem zjistil, že když do ní pustím PNG obrázek, který je v originále průhledný (pozadí), tak po zmenšení se mi udělá černé pozadí. a průhlednost je pryč. Koukám do toho hodiny Google taky nic, už si nevím rady. Děkuji.
                                 
                                 
                               
               
                              
                                 
                                      function obrazek($sirka, $vyska, $soubor, $kam, $id, $dopocitat = 'nic') {
	//zjistime typ obrazku
   $imgtype=getimagesize($soubor);
		switch($imgtype[2]){
		case 1:
			$im=imagecreatefromgif($soubor);
			$k = ".gif";
			break;
		case 2:
			$im=imagecreatefromjpeg($soubor);
			$k = ".jpg";
			break;
		case 3:
			$im=imagecreatefrompng($soubor);
			imagealphablending($im, true);
			$k = ".png";
			break;
		}
		$src_width=imagesx($im);
		$src_height=imagesy($im);
//ulozi se v originalni velikosti  
if($sirka == 0 and $vyska == 0) {
$height1=$src_height;
$width1=$src_width;
$thumb1=imagecreatetruecolor($width1,$height1);
imagealphablending($thumb1, true);
imagecopyresampled($thumb1,$im,0,0,0,0,$width1,$height1,$src_width, $src_height);		
$tmp_cil1=$kam.$id.$k;
if (file_exists($tmp_cil1)) unlink($tmp_cil1);	
switch($imgtype[2]){
		case 1:
			imagegif($thumb1,$tmp_cil1);
			break;
		case 2:
			imagejpeg($thumb1,$tmp_cil1, 100);
			break;
		case 3:
			imagesavealpha($thumb1, true);
			imagepng($thumb1,$tmp_cil1);	
			break;
		}
imagedestroy($thumb1);
}
else {
	if($dopocitat == "sirku") {
  $height2=$vyska;
  $width2=$height2/$src_height*$src_width;
	}
	elseif($dopocitat == "vysku") {
  $width2=$sirka;
  $height2=$width2/$src_width*$src_height;
	}
	elseif($dopocitat == "nic") {
  $width2=$sirka;
  $height2=$vyska;
	}
$thumb2=imagecreatetruecolor($width2,$height2);		
imagealphablending($thumb2, true);
imagecopyresampled($thumb2,$im,0,0,0,0,$width2,$height2,$src_width, $src_height);		
$tmp_cil2=$kam.$id.$k;
if (file_exists($tmp_cil2)) unlink($tmp_cil2);
switch($imgtype[2]){
		case 1:
			imagegif($thumb2,$tmp_cil2);
			break;
		case 2:
			imagejpeg($thumb2,$tmp_cil2, 100);
			break;
		case 3:
			imagesavealpha($thumb2, true);
			imagepng($thumb2,$tmp_cil2);
			break;
		}
imagedestroy($thumb2);
}
	}
                                 
                                 
                               
               
                              
                                 
                                      Docela špatně se to tady čte.. takže jenom vložím kus kódu, u kterého (polo)průhlednost funguje. Je sice někdy z roku 2008, ale to snad vadit nebude.. :)
public function load($filename,$alpha,$x,$y)
  { 
    if(!$img = @imagecreatefrompng($filename))
    {
      $img = imagecreatetruecolor($x,$y); //Blank image
      imagestring($img,1,5,5,'Background loading failed.',imagecolorallocate($img,255,255,255));
    }
    elseif($alpha)
    {
      imagealphablending($img,true);
      imagesavealpha($img,true);
    }
    return $img;
  }
  
  public function create($x,$y,$transparent)
  {
    $img = imagecreatetruecolor($x,$y);
    if($transparent)
    {
      imagealphablending($img,true);
      imagecolortransparent($img,imagecolorallocate($img,0,0,0));
      imagesavealpha($img,true);
    }else
    {
      imagealphablending($img,false);
      imagesavealpha($img,true);
    }
    return $img;
  }
public function copy($dest,$source,$dstx,$dsty,$srcx,$srcy,$dstw,$dsth,$srcw,$srch)
  {
    imagealphablending($source,false);
    imagefill($source,0,0,imagecolortransparent($source,imagecolorallocatealpha($source,0,0,0,127)));
    imagesavealpha($source,true);
    imagecopyresampled($dest,$source,$dstx,$dsty,$srcx,$srcy,$dstw,$dsth,$srcw,$srch);
    return true;
  }
public function save($img)
  {
    $filename = $this->path.'example.png';
    imagepng($img,$filename);
    return true;
  }
Přebrat si to ale budeš muset sám..