تغییر اندازه تصویر در php


تغییر اندازه تصویر در php

این مورد بسیار مهم است که هنگام نمایش عکس ها در وبسایت خودمان, اطمینان پیدا کنیم که در صفحه بندی سایت کاملا هم اندازه باشد . اگر اینطور نیست , پس بنابراین باید اندازه تصویر را تغییر دهیم . تغییر اندازه تصویر در php با استفاده از توابعی برای ساخت عکس جدید با اندازه های مشخص شده بسیار آسان است . در مقاله قبل کدی برای تغییر سایز همه عکس ها بصورت یکجا (multiple) را قرار دادیم.

بنابراین , استفاده از چندین تابع برای تغییر اندازه تصویر در php نیاز است .مراحل تغییر سایز عکس در php بصورت زیر است :

  • دریافت id عکس منبع
  • دریافت id لایه عکس نهایی
  • تغییر سایز عکس
  • ذخیره عکس جدید

تغییر اندازه تصویر در php

دریافت id عکس منبع

برای کار کردن با عکسی که قرار است آن را تغییر اندازه بدیم , نیاز داریم که id برای شناسایی فایل منبع را دریافت کنیم . همانطور که در آموزش کار با فایل ها در php انجام دادیم و یا دریافت متغییر handler که هنگام کار با دایرکتری ها در php انجام دادیم .

در php , توابع متنوعی برای دریافت id منبع فایل تصویر وجود دارد . این توابع php معمولا بر اساس نوع تصویر داده شده استفاده می شوند . برای مثال imagecreatefromjpeg(),imagecreatefromgif(),imagecreatefrompng(), برای مشخص کردن id تصاویر با فرمت JPEG,GIF,PNG استفاده میشوند.

در این مرحله , نیاز داریم تا نوع تصویر را با تابع php به نام getimagesize() دریافت کنیم که این تابع اطلاعات بیشتری از مشخصات تصویر مانند طول (height) و عرض (width) و غیره .. را برای ما مشخص می کند .

بعد از آن می توانیم بنابر خروجی مورد نظر از توابع بالا برای دریافت id منبع استفاده کنیم. همه این توابع php کار با تصاویر , برای دریافت مشخصات عکس استفاده می شود . برای مثال :

ثابت (constant) استفاده شده در شرط های بالا . یک مقدار از پیش تعریف شده برای نوع عکس ها است . برای مثال , IMAGETYPE_JPEG با دو مقدار تعریف شده که برا مشخص کردن نوع JPEG استفاده می شود .

دریافت id لایه عکس نهایی

بعد از دریافت id منبع از فایل عکس , نیاز داریم که یک تصویر با لایه فایل اصلی بسازیم . این تصویر ساخته شده با اندازه های عکس اصلی که ان را تغییر اندازه (resize) می دهیم ,می باشد

حتما بخوانید  متغیر$_POST و $_GET در php

تابع از پیش ساخته php به نام imagecreatetruecolor() برای این هدف استفاده می شود که به عنوان ورودی طول و عرض تصویر را دریافت می کند.

تابع imagecreatetruecolor() یک تصویر خالی را ایجاد می کند که به عنوان خروجی id تصویر جدید ساخته شده را با طول و عرض تعریف شده برگشت می دهد . این id در مراحل بعد استفاده می شود .

تغییر سایز عکس

برای این مرحله از تغییر اندازه تصویر در php ما باید اطلاعات تصویر را استفاده کنیم که عبارت اند از :

  • Id لایه منبع و فایل نهایی
  • طول و عرض عکس اصلی و عکس ساخته شده

با استفاده از اطلاعات دریافتی , قسمت های مورد نیاز تصویر به لایه فایل نهایی کپی خواهد شد .برای این کار از تابع php به نام imagecopuresapled() استفاده می کنیم.

در کد نمونه بالا , به بعضی از آرگومان های این تابع مقدار ۰ را پاس دادیم . این آرگومتن ها در واقع مقدار مختصات x,y به صورت تکرار شونده در تصویر منبع و نهایی است .

این آرگومان ها دارای مقادیر برای برش (crop) قسمت هایی از عکس منبع است . همچنین فکر نمیکنیم نیاز باشد که اشاره به این کنیم که مقادیر x,y به معنای این است که کل عکس طبق طول و عرض های اشاره شده باید برش داده شود .

نکته : یک تابع مشابه تابع imagecopuresapled() به نام imagecopyresized() وجود دارد که البته تابع imagecopuresapled() تصاویر با کیفیت و فشرده تری را ایجاد می کند.

ذخیره عکس جدید

در این مرحله از تغییر اندازه تصویر در php , زمان آن است که تصویر جدید را در مکان دلخواه ذخیره کنیم .برای همین به اطلاعات زیر نیاز داریم.

  • Id لایه عکس جدید
  • نام فایل نهایی یا آدرس ذخیره

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

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

حتما بخوانید  آپلود عکس در TinyMCE با php

مثال تغییر اندازه تصویر در php

مثال زیر به شما نحوه تغییر سایز هر نوع عکسی را که از طریق یک فرم html آپلود می شود را می دهد . بنابر این به راحتی از اسکریپت php زیر می توانید برای تغییر سایر تصاویر آپلود شده استفاده کنید.

و کد html برای بارگذاری تصویر بصورت زیر است .

از توابع بالا که معرفی کردیم برای ساخت کپچا نیز استفاده کردیم . درواقع کتابخانه قدرمتند GD به ما امکانات زیادی را برای کار با تصاویر در php ارایه می دهد . امیدوارم از این آموزش کاربردی برای تغییر اندازه تصویر در php نهایت استفاده را ببرید . تغییر سایز تصاویر در تمام وبسایت ها بخصوص در قسمت های نمایش عکس در پست ها , تصویر پروفایل بسیار مفید می باشد . امیدوارم در پروژه هایی که می نویسید از این کد کاربردی نهایت استفاده را ببرید.

 

هر مشکلی در پیاده سازی کد های تغییر اندازه تصویر در php داشتید . از قسمت نظرات با ما در ارتباط باشید , سریعا پاسخگوی سوالات شما هستیم .

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

حسن شفیعی
مدرس ، پنتستر ، توسعه دهنده اپلیکیشن های تحت وب ، عضو مرکز حامی نخبگان و از مدیران و اعضای رسمی تیم امنیتی آشیانه هستم . علاقه خاصی به زبان php و امنیت شبکه و لینوکس دارم و هر روز تلاش می کنم به این حوزه ها مسلط تر شوم و اطلاعاتم را در وب به اشتراک بگذارم

دیدگاه کاربران

دیدگاهتان را بنویسید

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

جدیدترین آموزش های آنلاین



دانلود رایگان (هدیه ویژه)

کتاب آموزش زبان برنامه نویسی PHP را دانلود و همین امروز یادگیری را شروع کن و به جمع برنامه نویسان ملحق شو ;)

دانلود رایگان کتاب

بخش کاربران

هنوز عضو نیستید ؟ کلیک کنید

مجوزهای ما

logo-enamd
logo-samandehi

دانلود کتاب

عضویت در خبرنامه