Resim upload kodlarım ise aşağıdaki gibidir;
class ResimIslem{
public function watermark($filigran, $source_file_path, $output_file_path )
{
list( $source_width, $source_height, $source_type ) = getimagesize( $source_file_path );
if ( $source_type === NULL )
{
return false;
}
switch ( $source_type )
{
case IMAGETYPE_GIF:
$source_gd_image = imagecreatefromgif( $source_file_path );
break;
case IMAGETYPE_JPEG:
$source_gd_image = imagecreatefromjpeg( $source_file_path );
break;
case IMAGETYPE_PNG:
$source_gd_image = imagecreatefrompng( $source_file_path );
break;
default:
return false;
}
$overlay_gd_image = imagecreatefrompng($filigran);
$overlay_width = imagesx( $overlay_gd_image );
$overlay_height = imagesy( $overlay_gd_image );
imagecopymerge(
$source_gd_image,
$overlay_gd_image,
$source_width - $overlay_width,
$source_height - $overlay_height,
0,
0,
$overlay_width,
$overlay_height,
60
);
imagejpeg( $source_gd_image, $output_file_path, 100 );
imagedestroy( $source_gd_image );
imagedestroy( $overlay_gd_image );
}
public function resim_boyutlandir($resim,$k_resim,$max_en=1920,$max_boy=1200){
// içeriği başlat..
$resimdosyasi= pathinfo($resim);
$uzanti=$resimdosyasi["extension"];
ob_start();
// ilk boyutlar..
$boyut = getimagesize($resim);
$en = $boyut[0];
$boy = $boyut[1];
// yeni boyutlar..
$x_oran = $max_en / $en;
$y_oran = $max_boy / $boy;
// boyutları orantıla..
if (($en <= $max_en) and ($boy <= $max_boy)){
$son_en = $en;
$son_boy = $boy;
}
elseif (($x_oran * $boy) < $max_boy){
$son_en = $max_en;
$son_boy = ceil($x_oran * $boy);
}
else{
$son_en = ceil($y_oran * $en);
$son_boy = $max_boy;
}
// uzantıya göre yeni resmi yarat..
switch($uzanti){
// jpg ve jpeg uzantılar için..
case 'jpg':
case 'jpeg':
// eski ve yeni resimler..
$eski = imagecreatefromjpeg($resim);
$yeni = imagecreatetruecolor($son_en,$son_boy);
// eski resmi yeniden oluştur..
imagecopyresampled($yeni,$eski,0,0,0,0,$son_en,$son_boy,$en,$boy);
// yeni resmi bas ve içeriği çek..
imagejpeg($yeni,null,85);
break;
// png uzantılar için..
case 'png':
$eski = imagecreatefrompng($resim);
$yeni = imagecreatetruecolor($son_en,$son_boy);
imagealphablending($yeni, false);
imagesavealpha($yeni, true);
$transparent = imagecolorallocatealpha($yeni, $son_en, $son_boy, $en, $boy);
imagefilledrectangle($yeni, 0, 0, $son_en, $son_boy, $transparent);
imagecopyresampled($yeni,$eski,0,0,0,0,$son_en,$son_boy,$en,$boy);
imagepng($yeni,null,-1);
break;
// gif uzantılar için..
case 'gif':
$eski = imagecreatefromgif($resim);
$yeni = imagecreatetruecolor($son_en,$son_boy);
imagealphablending($yeni, false);
imagesavealpha($yeni, true);
$transparent = imagecolorallocatealpha($yeni, $son_en, $son_boy, $en, $boy);
imagefilledrectangle($yeni, 0, 0, $son_en, $son_boy, $transparent);
imagecopyresampled($yeni,$eski,0,0,0,0,$son_en,$son_boy,$en,$boy);
imagegif($yeni,null);
break;
default:
$eski=null;
$yeni=null;
break;
}
$icerik = ob_get_contents();
// resimleri yoket ve içeriği çıkart..
ob_end_clean();
imagedestroy($eski);
imagedestroy($yeni);
$dosya = fopen($k_resim,"w+");
fwrite($dosya,$icerik);
fclose($dosya);
return $icerik;
}
private function adlandir($baslik){
$bul = array('Ç', 'Ş', 'Ğ', 'Ü', 'İ', 'Ö', 'ç', 'ş', 'ğ', 'ü', 'ö', 'ı', '-');
$yap = array('c', 's', 'g', 'u', 'i', 'o', 'c', 's', 'g', 'u', 'o', 'i', ' ');
$perma = strtolower(str_replace($bul, $yap, $baslik));
$perma = preg_replace("@[^A-Za-z0-9\-_]@i", ' ', $perma);
$perma = trim(preg_replace('/s+/',' ', $perma));
$perma = str_replace(' ', '-', $perma);
return $perma;
}
public function resim_upload($file_name,$file_tmp,$file_error,$file_path,$name,$en=1920,$boy=1200,$filigran=null){
$resimdosyasi= pathinfo($file_name);
$uzanti=$resimdosyasi["extension"];
$yeni_ad = $this->adlandir($name);
$yeni = $yeni_ad.'.'.$uzanti;
$max_en = $en;
$max_boy = $boy;
$b_resim = $file_path.'/orijinal-'.$yeni;
$k_resim = $file_path.'/'.$yeni;
if($uzanti=='jpg' or $uzanti=='jpeg' or $uzanti=='png' or $uzanti=='gif'){
if($file_error==0){
move_uploaded_file($file_tmp,$b_resim);
$this->resim_boyutlandir($b_resim,$k_resim,$max_en,$max_boy);
@unlink($b_resim);
///chmod($file_path, 755);
if($filigran!=null){
$this->watermark($filigran,$k_resim,$k_resim);
}
return $yeni;
}
else return $file_error;
}
else{
@unlink($k_resim);
return false;
}
}
}
?>