کم کردن حجم تصویر با PHP

  • آپدیت شده در تاریخ

کم کردن حجم تصویر با PHP

در این آموزش PHP قصد داریم به شما نحوه کم کردن حجم تصویر با PHP یا همان فشرده سازی تصاویر هنگام آپلود روی سایت را نشان بدیم.

همانطور که می دانید تصاویر با حجم  زیاد باعث بالارفتن زمان بارگزاری یک صفحه وب می شوند.

اگر می خواهید یک عکس بزرگ را بدون گذاشتن تاثیر منفی روی سرعت سایت را لود کنید, نیاز است که تصویر برای کاهش حجم فشرده/بهینه شود.

معمولا کاربران هنگام آپلود یک تصویر داخل وبسایت آن را برای وب بهینه نمی کنند. بنابراین در این مورد ما باید تصویر را قبل آپلود فشرده کنیم تا بهینه شود.

فشرده/بهنیه/ کم کردن حجم تصویر با PHP به راحتی قابل پیاده سازی است.

در قابلیت فشرده سازی تصاویر, حجم فایل قبل آپلود کاهش می یابد. عکس فشرده شده با ما در استفاده بهینه تر از فضای هاست/سرور و افزایش لود صفحه وب کمک می کند.

در این آموزش, به راحتی نحوه پیاده کردن اسکریپت کم کردن حجم تصویر با PHP را قبل آپلود را نشان می دهیم.

در آموزش های قبلی نحوه آپلود فایل با PHP و AJAX را دیدیم :

فرم آپلود فایل

یک فرم HTML به همراه یک فیلد فایل و دکمه سابمیت بسازید. مطمین باشید که تگ <form> شامل خصوصیات زیر باشد.

  • Method=”post”
  • Enctype=”multipart/form-data”

همینکه فرم سابمیت شد, داده های تصویر به سمت فایل upload.php به منظور انجام عملیات ارسال می شود

 

آپلود و کم کردن حجم تصویر با PHP

فایل upload.php عملیات فشرده سازی و آپلود عکس را هندل می کند.

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

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

همچنین وضعیت آپلود عکس با متن های از پیش نوشته شده چاپ می شود.

 

جمع بندی کم کردن حجم تصویر با PHP

بطور معمول, تابع move_uploaded_file() برای آپلود فایل با php استفاده می شود. اما, اگر می خواهید قبل آپلود (منظور انتقال از tmp به بخش اصلی هاست) تصویر را فشرده کنید, تابع سفارشی ما (compressImage()) بسیار مفید خواهد بود.

این کد مثال به شما کمک می کند که بدون استفاده از هیچ گونه کتابخانه فشرده سازی خارجی تصویر خود را فشرده کنید.

با این اسکریپت می تواند انواع مختلف فایل تصویر مانند JPG, JPEG, PNG, GIF را فشرده کنید.

البته کتابخانه های رایگان زیادی در سطح وب و Github موجود است که امکانات زیادی را برای کم کردن حجم تصویر با PHP را در اختیار شما قرار می دهند.

و ما در این آموزش ساده ترین راه را برای فشرده سازی عکس با PHP را ارایه دادیم که بنابر نیاز در بخش های مختلف پروژه خود می توانید استفاده کنید.

 

امیدوارم از آموزش کم کردن حجم تصویر با PHP نهایت استفاده را برده باشید.

هر سوالی داشتید ، از قسمت نظرات ارسال کنید . سریعا ، پاسخگوی سوالات شما هستیم .

موفق و پیروز باشید.

حسن شفیعی توسعه دهنده وب و موبایل مدیر سایت علاقه خاصی به برنامه نویسی وب و موبایل دارم و هر روز تلاش می کنم به این حوزه مسلط تر شوم و اطلاعاتم را به شکل کاربردی برای علاقه مندان در وب به اشتراک بگذارم. اگر نیاز به برنامه نویس برای انجام پروژه و نوشتن اسکریپت های سمت وب, اپلیکیشن های اندروید و ios, پیدا کردن راه حل توسعه و غیره داشتید حتما از طریق تماس با ما/ واتساپ/ تلگرام بهم پیام بدید. برایتهیه هاست مطمین و پرسرعت کلیک کنید
مطالب زیر را حتما بخوانید
دیدگاه کاربران (۱۵)

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

  1. محمد کرجی ۳۱ مرداد ۱۴۰۱

    سلام مهندس شفیعی
    من در سمت فرانت حجم عکس رو کاهش میدم و عکس رو هم نمایش میدم ولی موقع آپلود عکس اصلی آپلود میشه
    چطوری عکسی رو که کاهش حجم پیدا کرده به جای عکس اصلی در تگ input قرار بدم با تشکر از سایت خوبتون

    پاسخ
    1. حسن شفیعی ۲ شهریور ۱۴۰۱

      سلام. در سمت فرانت اگه با جاواسکریپت هست که اون رو در تگ قرار بدید با جی کویری میتونید تغییر بدید

      پاسخ
  2. مهدی ۲۲ آبان ۱۴۰۰

    سلام من از این روش استفاده کردم اما کیفیت عکس هم کاهش پیدامیکنه ، راهی هست که کیفیت عکس کاهش چشمگیری نداشته باشه و حجمش هم کم شه؟

    پاسخ
    1. حسن شفیعی ۲۲ آبان ۱۴۰۰

      سلام.
      باید از ImageMagick داخل php استفاده کنی

      پاسخ
  3. محمود رنجبر ۲۸ مرداد ۱۴۰۰

    سلام مجدد مشکلم حل شد باید gd رو فعال میکردم

    پاسخ
  4. محمود رنجبر ۲۸ مرداد ۱۴۰۰

    سلام مهندس شفیعی من کد ها رو کپی و استفاده کردم ولی خطای undefined imagecreatefrompng رو میده
    چیکار کنم ؟ مگه این توابع مال خود php نیست که میگه تعریف نشده

    پاسخ
  5. محمود رنجبر ۲۷ مرداد ۱۴۰۰

    سلام مهندس شفیعی عزیز کتابخونه ای هست که بخواهیم عکس موردنظر رو که از کاربران میگیریم روی ۲۰۰ کیلو بایت تنظیم و کاهش بده با تشکر

    پاسخ
  6. محمد ۷ تیر ۱۴۰۰

    سلام کلی گشتم سایتای مختلف رو دمتون گرم عالی بود.

    پاسخ
  7. محمد ۷ تیر ۱۴۰۰

    سلام کلی گشتم سایتای مختلف رو دمتون گرم عالی بود

    پاسخ
  8. نیلوفر ۱۹ بهمن ۱۳۹۹

    سلام این تابع میاد حجم عکس رو کم می کنه بعد آپلود>؟

    پاسخ
    1. حسن شفیعی ۲۰ بهمن ۱۳۹۹

      سلام. بله

      پاسخ
  9. hassan ۲۲ آذر ۱۳۹۹

    سلام الان دقیقا کجا باید کد های آپلود رو گذاشت که این عکس فشرده شده آپلود بشه !!!

    پاسخ
    1. حسن شفیعی ۲۲ آذر ۱۳۹۹

      سلام. این کدها هم آپلودر هست و هم کم کننده حجم.
      تابع compressImage همان حجم را کاهش میده

      پاسخ
      1. hassan ۲۳ آذر ۱۳۹۹

        آره اوکی شد ممنون بابت مطلب خوبتون
        فقط میشه کناره همین کاهش حجم عکس اندازش رو هم کم کرد که حجم بیشتر کاهش پیدا کنه؟

        پاسخ
      2. حسن شفیعی ۲۳ آذر ۱۳۹۹

        بله میتونید از این آموزش استفاده کنید:
        تغییر اندازه تصویر در php

        پاسخ
دوره های آموزشی