رتبه موضوع:
  • 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
کاهش حجم فایلهای تصویری به اندازه دلخواه
#1
این کد رو میتونید برحسب نیازتون، کاملتر کنید و برای مثال، با توجه به نوع فرمت (PNG و...) از توابع مناسب برای خوندن و ذخیره کردن تصویر استفاده کنید:
function Resize($file, $size) {
    if(!file_exists($file)) {
        return;
    }
    $im = ImageCreateFromJPEG($file);
    $quality = 100;
    do {
        ImageJPEG($im, $file, $quality--);
    } while(filesize($file) > $size && $quality > 0);
    ImageDestroy($im);
}
پاسخ
تشکر شده توسط: abdollah110110 , meysam1366
#2
منظورتون از سایز، اندازه پیکسل عکس هستش یا سایز حجم فایل روی هارد دیسک؟ که فکر میکنم با توجه به کدها جوابم مورد دوم باید باشه و اگر مورد دوم هست، پارامتر ورودی size تابع به چه صورت باید داده بشه؟ بایت یا کیلوبایت؟
پاسخ
تشکر شده توسط:
#3
منظورم حجم فیزیکی فایل هست. باید مقدار رو برحسب بایت بدین.
پاسخ
تشکر شده توسط: php , meysam1366
#4
سلام
تشکر بابت کد فوق العادتون.
ی سوالی برام پیش اومده.
به جای اینکه بیایم حجم تصویر رو کاهش بدیم ، انداره تصوی رو پایین میاریم.
اینطوری حجم تصویر هم پایین میاد.
به نظرتون این بهتر نیست.
آیا برای این کار کدی هم دارید؟
ممنون
پاسخ
تشکر شده توسط:
#5
پیدا کردم.
ممنون


function resizee($file){
$filename = $file;
list($width,$height) = getimagesize($filename);
$ww=round($width/4)+70;
$hh=round($height/4)+70;
$newwidth =$ww;
$newheight =$hh;
$thumb = imagecreatetruecolor($newwidth, $newheight);



$ext=substr(strrchr($file,'.'), 1);
switch($ext){

case 'jpg':
$source=imagecreatefromjpeg($filename);
imagecopyresized($thumb, $source, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);
imagejpeg($thumb,$file);
break;
	
	
case 'png':
$source=imagecreatefrompng($filename);
imagecopyresized($thumb, $source, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);
imagepng($thumb,$file);
break;
	
	
case 'gif':
$source=imagecreatefromgif($filename);
imagecopyresized($thumb, $source, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);
imagegif($thumb,$file);
break;

}
}

resizee('desert.jpg');

پاسخ
تشکر شده توسط:
#6
بهتره بجای Resized از Resampled استفاده کنید تا کیفیت تصاویر بهتر بشن.
پاسخ
تشکر شده توسط:




کاربران در حال بازدید این موضوع: 3 مهمان