ممنونم از اینکه جوابم رو دادین.ببخشید متد
getImageType چیه ؟
حساب
در حال دریافت فهرست آموزشها…
سلام دوستان
من برای ریسایز کردن خودکار عکس ها از تابعی که استاد آموزشش رو دادن استفاده کردم فک کنم تابع گرافیکی GD اسمش بود
مشکلی که باهاش دارم اینه که عکسایی که توی سرورم هستند رو درست ریسایز نمی کنه ، فقط یه تصویر مشکی رنگ میسازه ، اگه همون عکس رو پسوندشو عوض کنم و از png به jpg تغییر بدم به خوبی کار میکنه
البته تصاویر png رو تست کردم بعضی ها رو به خوبی ریسایز می کنه
به نظرتون مشکل از کجا میتونه باشه ؟
سلام
منم این مشکل رو داشتم که البته با کمک یکی از دوستان در تلگرام حلش شد
این فانکشن زیر رو از رو اموزش های استاد ساختم که البته مشکل داش (سیاه کردن عکس هاس ترانسپرنت ) و همین طور که گفتم با کمک یکی از دوستان و استک اورفلو درستش کردم میتونید از این فانکشن برا خودتون استفاده کنید
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;
}
getImageType چیه ؟ 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;
}
نظرات