راکت
حل شده

تغییر سایز عکس در لاراول

3 پاسخ

سلام میخواستم ببینم چطور میتونم سایز و ابعاد یک عکس رو در لاراول تغییر بدم
@asp.gosk
@endworld
@milwad

sina
sina
@s.aerospace
ثبت پرسش جدید

پاسخ‌ها

3
ASPgo
ASPgo
@asp.gosk

تخصص: HTML، CSS، PHP و JS، طراح قالب و افزونه وردپرس، سئوکار و مقاله نویس

بهترین پاسخ

با GDImage تو PHP میتونی روی تصاویر تغییراتی که میخوای رو اعمال کنی. برای تغییر سایز تصویر از کد زیر استفاده میکنیم:

$imageInfo = getimagesize($filename); // $filename : آدرس تصویر | خروجی تابع یه آرایه هست که سایز تصویر(طول و عرض) توش وجود داره
$original_w = $imageInfo[0]; // اینجا عرض یا همون Width تصویر رو بدست میاریم
$original_h = $imageInfo[2];
$original_img = imagecreatefromjpeg($filename); // اینجا با تابع imagecreatefromjpeg یه تصویر جدید از تصویر قدیمی میسازیم. نکته: اگه تصویر WEBP، PNG یا فرمت دیگه ای داشته باشه باید از تابع مخصوص خودشون استفاده کنی. مثلا بری پی‌ان‌جی imagecreatefrompng هست
$thumb_w = 100; // Width جدید
$thumb_h = 100; // Height جدید
$thumb_img = imagecreatetruecolor($thumb_w, $thumb_h); // اینجا یه تصویر خالی با width و height جدید(همون thumb_h و thumb_w) میسازیم
imagecopyresampled($thumb_img, $original_img, // اینجا اطلاعات تصویر اصلی رو قرار میدیم تو تصویر جدید
                   0, 0,
                   0, 0,
                   $thumb_w, $thumb_h,
                   $original_w, $original_h);
imagejpeg($thumb_img, $adress); // اینجا هم تصویر رو ذخیره میکنیم. $adress : آدرس کامل جایی که باید ذخیره بشه؛ نکته: باید تو آدرس اسم تصویر و فرمت تصویر هم باشه مثلا Folder\Image.jpg .

منبع
نکته: تو خط آخر imagejpeg یه ورودی سوم هم میگیره که اجباری نیست. کیفیت تصویر هست که تو WEBP و JPEG یه عدد بین 1 تا 99 و تو PNG یه عدد بین 1 تا 9 هست.
همونطور که گفتم هر فرمت تابع های خودش رو داره اما زیاد تفاوتی با هم ندارن اما باید برای هر فرمت تابع خودش رو استفاده کنی. مثلا برای WEBP باید از imagecreatefromwebp و imagewebp استفاده کنی
آموزش/مستندات تابع ها:
imagejpeg
imagecreatefromjpeg
getimagesize

از API های اینکار هم میتونی استفاده کنی.

محمدحسن یگانه
محمدحسن یگانه
@mhyeganeh

تخصص: Full-Stack Web Developer Freelancer

پیشنهادم استفاده از پکیج فوق العاده image intervention هست. اگر به مستنداتش مراجعه کنید امکانات خیلی زیادی رو در اختیارتون قرار میده از جمله resize:
https://image.intervention.io/v2/api/resize

میلاد خسروی
میلاد خسروی
@milwad

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

سلام خسته نباشید
این پکیج خیلی خوبه برای عکس ها و کلی کار میتونی انجام بدی
https://image.intervention.io/v2
اینم برای اموزش
https://www.itsolutionstuff.com/post/laravel-8-resize-image-before-upload-exampleexample.html

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

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

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