ساخت تصاویر بندانگشتی (thumbnail) در PHP - نسخهی قابل چاپ +- انجمن عمومی گسترش فناوری آگو (http://forums.ago.ir) +-- انجمن: انجمن های عمومی گسترش فناوری آگو (/forumdisplay.php?fid=1) +--- انجمن: برنامه نویسی (/forumdisplay.php?fid=13) +--- موضوع: ساخت تصاویر بندانگشتی (thumbnail) در PHP (/showthread.php?tid=2289) |
ساخت تصاویر بندانگشتی (thumbnail) در PHP - agotd - 01-25-2014 03:13 PM اگر سایت شما به کاربران اجازه آپلود عکس رو میده ، شاید بهتر باشه برای نمایش عکس آپلود شده در محتوای سایت ، عکس رو به صورت بند انگشتی نمایش داد. مزیت ساخت تصاویر بند انگشتی اینه که محتویات سایت به هم نمیریزه و هم سرعت لود شدن سایت کاهش پیدا میکنه. برای انجام این کار از توابع GD در PHP استفاده میکنیم.برای ساخت تصاویر بند انگشتی ۵ مرحله زیر رو دنبال میکنیم : ۱ – بارگزاری (Load) عکس مورد نظر در یک متغیر ۲ – مشخص کردن عرض و طول تصویر ۳ – ساخت یک عکس خالی با اندازه دلخواه ۴ – کپی کردن عکس اصلی در تصویر ساخته شده (شماره ۳) ۵ – نمایش تصویر thumbnail خب بریم ببینیم چطور میشه که ایطور میشه کد php: $sourceImage = 'img/moon.jpg'; در بالا ابتدا عکس اصلی رو مشخص کردیم سپس سایز تصویر thumbnail رو مشخص کردیم. حالا کدهای زیر رو اضافه میکنیم : کد php: $original = imagecreatefromjpeg($sourceImage); در خط اول کد بالا ، عکس اصلی رو با استفاده از دستور imagecreatefromjpeg داخل یک متغیر کپی کردیم.در خط بعد هم اندازه تصویر اصلی رو داخل متغیر $dims ریختیم. یادآوری : تابع getimagesize سایز تصویر رو به صورت یک آرایه برمیگردونه. در مرحله بعد با استفاده از تابع imagecreatetruecolor یک تصویر خالی ایجاد میکنیم کد php: $thumb = imagecreatetruecolor($thumbWidth , $thumbHeight); در این مرحله عکس اصلی رو در عکس ساخته شده در مرحله قبل کپی میکینیم : کد php: imagecopyresampled( $thumb, $original, 0, 0, 0, 0, تابع imagecopyresampled عکس رو تغییر سایز میده و در متغیر $thumb (عکس خالی ایجاد شده در مرحله قبل) کپی میکنه. در این تابع پارامتر اول تصویر خالی ایجاد شده است. پارامتر دوم تصویر اصلی رو مشخص میکنه. پارامتر های سوم و چهارم و پنجم و ششم مختصات تصویر اصلی رو مشخص میکنه.با دادن مختصات میتونیم مشخص کنیم کجای تصویر اصلی در $thumb قرار بگیره.این مختصات از بالای سمت چپ تصویر اصلی حساب میشن.اگر بخوایم کل تصویر اصلی در $thumb قرار بگیره این ۴ پارامتر رو ۰ قرار میدیم. چهار پارامتر انتهایی این تابع هم سایز تصویر بندانگشتی و سایز تصویر اصلی رو میگیره. در مرحله آخر هم با استفاده از تابع header این تصویر رو نمایش میدیم : کد php: header('Content-type: image/jpeg'); ابتدا با دستور header فرمت تصویر رو مشخص کردیم.(انواع فرمتهای تصویر و نحوه استفاده در تابع header رو قبلا بحث کردیم) سپس با تابع imagejpeg تصویر رو به خروجی ارسال کردیم. |