PDA

View Full Version : این کد اپلود عکسم عکس های gif رو وقتی اپلود میکنه تبدیل به jpg میشن.



saeed-71
پنج شنبه 09 مرداد 1393, 13:35 عصر
سلام.
این کد اپلود عکسم عکس های gif رو وقتی اپلود میکنه تبدیل به jpg میشن کیفیت عکس رو هم خیلی میاره پایین.



function SafeUpload($name, $max_size, $filesize) {

$root = str_replace('\\', '/', dirname(__FILE__));

$allowedTypes = array ('image/gif', 'image/jpeg', 'image/png', 'image/wbmp');

if(!isset($_FILES [$name])) {

return false;

}

$file = &$_FILES [$name];

if($file ['error'] == 0 && in_array($file ['type'], $allowedTypes) && $file ['size'] <= $max_size) {

$in = '';

switch($file ['type']) {

case 'image/gif':

$in = 'ImageCreateFromGIF';

break;

case 'image/jpeg':

$in = 'ImageCreateFromJPEG';

break;

case 'image/png':

$in = 'ImageCreateFromPNG';

break;

case 'image/wbmp':

$in = 'ImageCreateFromWBMP';

break;

}

if($in == '') {

return false;

}

$w=468;
$h=60;
$crop = false;
list($width, $height) = getimagesize($file['tmp_name']);
$r = $width / $height;
if ($crop) {
if ($width > $height) {
$width = ceil($width-($width*abs($r-$w/$h)));
} else {
$height = ceil($height-($height*abs($r-$w/$h)));
}
$newwidth = $w;
$newheight = $h;
} else {
if ($w/$h > $r) {
$newwidth = $h*$r;
$newheight = $h;
} else {
$newheight = $w/$r;
$newwidth = $w;
}
}
$src = $in($file ['tmp_name']);
$dst = imagecreatetruecolor($newwidth, $newheight);
$im = imagecopyresampled($dst, $src, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);
/*$stamp = imagecreatefrompng('../img/watermark.png');
$marge_right = 2;
$marge_bottom = 2;
$sx = imagesx($stamp);
$sy = imagesy($stamp);
imagecopy($dst,$stamp,imagesx($dst) - $sx - $marge_right,imagesy($dst)-$sy-$marge_bottom,0,0,imagesx($stamp),imagesy($stamp)) ;*/


$time = time();
while(file_exists($root . '/../../upload/' . $time . '.gif')) {

$time++;

}

$quality = 100;

do {

ImageJPEG($dst, $root . '/../../upload/' . $time . '.gif');

}
while(filesize($root . '/../../upload/' . $time . '.gif') > $filesize && $quality > 0);
if(file_exists($root . '/../../upload/' . $time . '.gif')){
ImageDestroy($dst);
ImageDestroy($src);
$ax = $time;
return $ax;
}

}// end function