hi
Ich möchte gerne die Transparenz der *.png und *.gif Dateien erhalten nach dem ich sie per script verkleinert habe und mit "imagecreate" in der neuen größe speichere.
Ich weiß wie es theoretisch funktioniert:
dennoch bekomm ich es nicht in dieses Script eingebaut.
Das Script bekommt ein Bildupload geliefert, prüft die Dateiendung, reduziert die Breite proportional auf 690px, wandelt das gelieferte Format in *.jpg um, ändert den Dateinamen nach einer bestimmten vorgabe und speichert alles in der Datenbank.
Ich möchte gerne die Transparenz der *.png und *.gif Dateien erhalten nach dem ich sie per script verkleinert habe und mit "imagecreate" in der neuen größe speichere.
Ich weiß wie es theoretisch funktioniert:
PHP:
imagealphablending($im, false);
$colorTransparent = imagecolorallocatealpha($im, 0, 0, 0, 127);
imagefill($im, 0, 0, $colorTransparent);
imagesavealpha($im, true);
dennoch bekomm ich es nicht in dieses Script eingebaut.
Das Script bekommt ein Bildupload geliefert, prüft die Dateiendung, reduziert die Breite proportional auf 690px, wandelt das gelieferte Format in *.jpg um, ändert den Dateinamen nach einer bestimmten vorgabe und speichert alles in der Datenbank.
PHP:
$allowedfiles = array('jpg', 'jpeg', 'JPG', 'JPEG', 'png', 'PNG', 'gif', 'GIF');
$size = filesize($_FILES['datei']['tmp_name'])/1000000;
$mbsize = round($size, 3);
$base_dir = "http://www.xxx.de/xxx/xxx/";
$upload_dir = "xxx/xxx/";
if(!isset($_FILES['datei'])) {echo'error';}else {
$filetype = split("\.", $_FILES['datei']['name']);
$filetype = $filetype[count($filetype)-1];
$file_size = $_FILES['datei']['size'];
if(!in_array($filetype, $allowedfiles)){echo'error';}else{
$safe_extension ="_extens.";
$safe_filename = $xxx.$safe_extension.$filetype;
// Bildbreite reduzieren
$size_orig = 690;
$tmpname = $_FILES['datei']['tmp_name'];
function img_resize( $tmpname, $size_orig, $upload_dir, $safe_filename ){
$upload_dir .= ( substr($upload_dir,-1) != "/") ? "/" : "";
$gis = GetImageSize($tmpname);
$type = $gis[2];
switch($type){
case "1": $imorig = imagecreatefromgif($tmpname); break;
case "2": $imorig = imagecreatefromjpeg($tmpname);break;
case "3": $imorig = imagecreatefrompng($tmpname); break;
default: $imorig = imagecreatefromjpeg($tmpname);}
$x = imageSX($imorig);
$y = imageSY($imorig);
if($gis[0] <= $size_orig){
$av = $x;
$ah = $y; }else{
$yc = $y*1.0001;
$d = $x>$yc?$x:$yc;
$c = $d>$size_orig ? $size_orig/$d : $size_orig;
$av = $x*$c;
$ah = $y*$c;
}
$im = imagecreate($av, $ah);
$im = imagecreatetruecolor($av,$ah);
if (imagecopyresampled($im,$imorig , 0,0,0,0,$av,$ah,$x,$y))
if (imagejpeg($im, $upload_dir.$safe_filename))
return true;
else
return false;}
@img_resize( $tmpname , 690 , $upload_dir , $safe_filename);
$complete_path = $base_dir.$upload_dir.$safe_filename;
// Bildformate in png umwandeln
$typ=getimagesize($complete_path);
$typ=$typ[2];
switch ($typ) {
case "1" :$im = imagecreatefromgif($complete_path);break;
case "2" :$im = imagecreatefromjpeg($complete_path);break;
case "3" :$im = imagecreatefrompng($complete_path);break;}
//Bild als *.png abspeichern
$pic_dir = "cms/band/bandpic/";
$new_path = imagejpeg($im,$pic_dir.$xxx.$safe_extension."jpg");
$sizewxh = getimagesize($complete_path);
$sizewidth = $sizewxh[0];
$sizeheight = $sizewxh[1];
$new_jpg_path = $base_dir.$pic_dir.$xxx.$safe_extension."jpg";
$sql = " INSERT... ";
}
}