راکت
حل شده

کم حجم سازی تصاویر

5 پاسخ

سلام
من میخوام هر عکسی که توی هاست آپلود شد حجمش کم شه
اگه توی php یا js کتابخونه سراغ دارین راهنمایی کنین لطفاً

ثبت پرسش جدید

پاسخ‌ها

5
حسن حکمتی
حسن حکمتی
@hekmati

تخصص: برنامه نویس وب و بلاکچین

بهترین پاسخ

سلام
می تونید از تابع imagecopyresampled استفاده کنید.
این پکیچ هم ممکنه برای کار شما مناسب باشه.

Kamran
Kamran
@kami.dev

تخصص: برنامه نویس فرانت اند و لاراول

// Compress image
function compressImage($source, $destination, $quality) {
  $info = getimagesize($source);
  if ($info['mime'] == 'image/jpeg') 
    $image = imagecreatefromjpeg($source);
  elseif ($info['mime'] == 'image/gif') 
    $image = imagecreatefromgif($source);
  elseif ($info['mime'] == 'image/png') 
    $image = imagecreatefrompng($source);
  imagejpeg($image, $destination, $quality);
}
علی جمالی
علی جمالی
@alijamali

تخصص: برنامه نویس وب

ممنون از راهنماییتون @hekmati @sajad.chaji811

شاید پاسخ شما همین‌جا باشد

امانوئل
امانوئل
@emnatkins

تخصص: :) بـالـاخـَرـہ ڪـَم و زیـاد بلدیم

Compressimage() یک تابع سفارشیه که کمک می کنه تا تصویر رو فشرده کنی

اگر فایل سابمیت شد, داده های فایل با متد $_FILES در PHP دریافت میشه و با تابع compressimage() حجم تصویر فشرده و آپلود میشه

<?php 

/* 
 * Custom function to compress image size and 
 * upload to the server using PHP 
 */ 
function compressImage($source, $destination, $quality) { 
    // Get image info 
    $imgInfo = getimagesize($source); 
    $mime = $imgInfo['mime']; 

    // Create a new image from file 
    switch($mime){ 
        case 'image/jpeg': 
            $image = imagecreatefromjpeg($source); 
            break; 
        case 'image/png': 
            $image = imagecreatefrompng($source); 
            break; 
        case 'image/gif': 
            $image = imagecreatefromgif($source); 
            break; 
        default: 
            $image = imagecreatefromjpeg($source); 
    } 

    // Save image 
    imagejpeg($image, $destination, $quality); 

    // Return compressed image 
    return $destination; 
} 

// File upload path 
$uploadPath = "uploads/"; 

// If file upload form is submitted 
$status = $statusMsg = ''; 
if(isset($_POST["submit"])){ 
    $status = 'error'; 
    if(!empty($_FILES["image"]["name"])) { 
        // File info 
        $fileName = basename($_FILES["image"]["name"]); 
        $imageUploadPath = $uploadPath . $fileName; 
        $fileType = pathinfo($imageUploadPath, PATHINFO_EXTENSION); 

        // Allow certain file formats 
        $allowTypes = array('jpg','png','jpeg','gif'); 
        if(in_array($fileType, $allowTypes)){ 
            // Image temp source 
            $imageTemp = $_FILES["image"]["tmp_name"]; 

            // Compress size and upload image 
            $compressedImage = compressImage($imageTemp, $imageUploadPath, 75); 

            if($compressedImage){ 
                $status = 'success'; 
                $statusMsg = "Image compressed successfully."; 
            }else{ 
                $statusMsg = "Image compress failed!"; 
            } 
        }else{ 
            $statusMsg = 'Sorry, only JPG, JPEG, PNG, & GIF files are allowed to upload.'; 
        } 
    }else{ 
        $statusMsg = 'Please select an image file to upload.'; 
    } 
} 

// Display status message 
echo $statusMsg; 

?>
افشار محمودیان
افشار محمودیان
@afsharmahmoodian

تخصص: برنامه نویس

این پکیج رو پیشنهاد میکنم ...
https://github.com/smottt/WideImage

برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام