آموزش های این وب سایت به صورت رایگان در دسترس است. اطلاعات بیشتر
مشکل عدم دسترسی خریداران پیشین به برخی آموزش ها برطرف شد
بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]

ریسایز تصاویر با تابع GD

kazemian  4 سال پیش  4 سال پیش
0 0

سلام دوستان
من برای ریسایز کردن خودکار عکس ها از تابعی که استاد آموزشش رو دادن استفاده کردم فک کنم تابع گرافیکی GD اسمش بود
مشکلی که باهاش دارم اینه که عکسایی که توی سرورم هستند رو درست ریسایز نمی کنه ، فقط یه تصویر مشکی رنگ میسازه ، اگه همون عکس رو پسوندشو عوض کنم و از png به jpg تغییر بدم به خوبی کار میکنه
البته تصاویر png رو تست کردم بعضی ها رو به خوبی ریسایز می کنه
به نظرتون مشکل از کجا میتونه باشه ؟

 برای این سوال 2 پاسخ وجود دارد.
پاسخ به سوال 
نوید  4 سال پیش
+2 0

سلام
منم این مشکل رو داشتم که البته با کمک یکی از دوستان در تلگرام حلش شد

این فانکشن زیر رو از رو اموزش های استاد ساختم که البته مشکل داش (سیاه کردن عکس هاس ترانسپرنت ) و همین طور که گفتم با کمک یکی از دوستان و استک اورفلو درستش کردم میتونید از این فانکشن برا خودتون استفاده کنید

 
function resizeImage($sourcePath, $newWidth, $newHeight, $pathImage = null) {

$ext = getImageType($sourcePath);

if ($ext == 'jpg' || $ext == 'jpeg') {
$format = 'jpg';
} else {
$format = 'png';
}

if ($format == 'png') {
$sourceImage = imagecreatefrompng($sourcePath);
}
if ($format == 'jpg') {
$sourceImage = imagecreatefromjpeg($sourcePath);
}

list($srcWidth, $srcHeight) = getimagesize($sourcePath);

$ratio = getImageRatio($sourcePath);

if ($newHeight == 0) {
$newHeight = $newWidth * $ratio;
}
if ($newWidth == 0) {
$newWidth = $newHeight / $ratio;
}

$destinatioImage = imagecreatetruecolor($newWidth, $newHeight);

//تنظیم کردن یک رنگ برای عکس
$background = imagecolorallocatealpha($destinatioImage, 255, 255, 255, 127);
//تعریف یک رنگ به صورت شفاف بر روی عکس
imagecolortransparent($destinatioImage, $background);
// حالت ترکیب برای یک تصویر را تنظیم کنید
imagealphablending($destinatioImage, false);
//نگه داره اطلاعات الفا در هنگام ذخیره
imagesavealpha($destinatioImage, true);

imagecopyresampled($destinatioImage, $sourceImage, 0, 0, 0, 0, $newWidth, $newHeight, $srcWidth, $srcHeight);

if ($pathImage == null) {
header('Content-Type: image/png');
if ($format == 'png') {
imagepng($destinatioImage);
}
if ($format == 'jpg') {
imagejpeg($destinatioImage);
}
} else {
if ($format == 'png') {
imagepng($destinatioImage, $pathImage);
}
if ($format == 'jpg') {
imagejpeg($destinatioImage, $pathImage);
}
}

return;

}
0 0
ممنونم از اینکه جوابم رو دادین.ببخشید متد getImageType چیه ؟ (4 سال پیش)
+1 0
سلام ببخشید دو تا متد رو یادم رفته بودم برات بزارم ** function getImageRatio($sourcePath){ list($width, $height) = getimagesize($sourcePath); $imageRation = $height / $width; return $imageRation; } function getImageType($sourcePath) { list($width, $height, $type) = getimagesize($sourcePath); $parts = explode("/", image_type_to_mime_type($type)); $ext = $parts[count($parts) - 1]; return $ext; } ** (4 سال پیش)
پاسخ به سوال 
نوید  4 سال پیش
+1 0

 function getImageRatio($sourcePath){
  list($width, $height) = getimagesize($sourcePath);
  $imageRation = $height / $width;
  return $imageRation;
}

function getImageType($sourcePath) {
  list($width, $height, $type) = getimagesize($sourcePath);
  $parts = explode("/", image_type_to_mime_type($type));
  $ext = $parts[count($parts) - 1];
  return $ext;
}

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