کم کردن حجم عکس در php
سلام
چطوری میتونم با php حجم عکس هارو کم کنم؟
مثلا کاربر میاد یک عکس 7 مگابایتی رو ارسال میکنه و در سمت سرور حجم عکس با php کم بشه
رمز عبور خود را فراموش کرده اید؟ ایمیل خود را وارد کنید
رایگان ثبت نام کنید و سوالات خود را بپرسید، همچنین میتوانید در پاسخگویی به سوالات دیگر کاربران نیز سهیم باشید، هر مشکلی در ثبت نام یا ورود داشتید با ایمیل beporsam@gmail.com در ارتباط باشید
بپرسم را میتوان به عنوان مرجعی برای آموزش و حل مشکلات دانست، در بپرسم سعی کرده ایم آموزش های برنامه نویسی، طراحی سایت، کار با نرم افزارها ها و… را آموزش دهیم. همچنین محیطی فراهم کرده ایم تا کاربران بتوانند در این محیط سوالات خود را بپرسند و مشکل خود را حل کنند.
پاسخ ها ( 1 )
سلام
یک کتابخانه هست به اسم iamageine که با عکس هر کاری که خواسته باشید؛ میتونید بکنید اعم از تغییر سایز، تغییر شکل، تغییر حجم و …
که مستنداتش داخل سایت خودش موجوده میتونید مطالعه کنید:
https://imagine.readthedocs.io/en/latest/
راه دیگه هم اینه که از کلاس آماده زیر استفاده کنی؛ تا حجم عکس ها رو به شکل قابل توجهی کم کنی.
کدهای فرم:
<!DOCTYPE html> <html> <head> <title>کم کردن حجم تصویر هنگام آپلود</title> </head> <body> <form action='' method='POST' enctype='multipart/form-data'> <input name="image_file" type="file" accept="image/*"> <button type="submit">Upload</button> </form> </body> </html>کدهای PHP(شامل کلاس آپلود و کم کردن حجم عکس):
<?php if ($_SERVER['REQUEST_METHOD'] == "POST") { $file_name = $_FILES["image_file"]["name"]; $file_type = $_FILES["image_file"]["type"]; $temp_name = $_FILES["image_file"]["tmp_name"]; $file_size = $_FILES["image_file"]["size"]; $error = $_FILES["image_file"]["error"]; if (!$temp_name) { echo "ERROR: Please browse for file before uploading"; exit(); } function compress_image($source_url, $destination_url, $quality) { $info = getimagesize($source_url); if ($info['mime'] == 'image/jpeg') $image = imagecreatefromjpeg($source_url); elseif ($info['mime'] == 'image/gif') $image = imagecreatefromgif($source_url); elseif ($info['mime'] == 'image/png') $image = imagecreatefrompng($source_url); imagejpeg($image, $destination_url, $quality); echo "Image uploaded successfully."; } if ($error > 0) { echo $error; } else if (($file_type == "image/gif") || ($file_type == "image/jpeg") || ($file_type == "image/png") || ($file_type == "image/pjpeg")) { $filename = compress_image($temp_name, "uploads/" . $file_name, 80); } else { echo "Uploaded image should be jpg or gif or png."; } } ?>در خط های 17 تا 19 که پسوندهای مجاز را تعریف کردیم، در خط 29 میتوانید با توجه به نیاز خود عددی بین 0 تا 100 قرار دهید که این عدد تعیین میکند که فشرده سازی تصویر چند درصد باشد.
موفق باشید.
سلام
راه دومی که میگید که وقتی عکس فشرده میشه از کیفیت عکس هم کم میشه؟
من نمیخوام از کیفیت عکس کم بشه
سلام
طبیعتا یکمی(به صورت محسوس) کیفیت عکس پایین میاد، که شما خودتون میتونید تنظیم کنید عددی بین 0 تا 100(خط 29)
ممنون