PDA

View Full Version : علت سیاه شده تصویر بعد از تغییر سایز تصویر



مهرداد سیف زاده
سه شنبه 18 تیر 1392, 09:36 صبح
به کمک تابع زیر قصد دارم تصویر ارسالی کاربر رو تغییر اندازه بدم و روی تصویر قبلی بازنویسی کنم. بر روی هاست لوکال سیستمم خوب جواب میده ولی روی اینترنت تصویر سیاه برمیگردونه. نمیدونم مشکل از کجاست دوستانی که GD library آشنایی دارن ممنون میشم راهنمایی کنن.


function image_resize($filename)
{
$src=imagecreatefromjpeg($filename);
$dst=imagecreatetruecolor(130,98);
imagecopyresized($dst,$src,0,0,0,0,130,98,imagesx( $src),imagesy($src));
imagejpeg($dst,$filename,10);
imagedestroy($src);
imagedestroy($dst);
}

MMSHFE
سه شنبه 18 تیر 1392, 09:51 صبح
چک کنید ببینید روی هاستتون GD نصبه یا نه؟

مهرداد سیف زاده
سه شنبه 18 تیر 1392, 10:23 صبح
بله GD نصبه چون با ساخت کپچا مشکل نداره ولی چند سوال
1- امکان داره با پسوند فایل مشکل داشته باشه مثلا اگر پسوند فایل JPG باشه امکان داره جواب نده؟(چون سیستم لوکالم ویندوز هست و هاست من لینوکس که با اسامی فایلهای کوچک و بزرگ امکان تداخل هست)
2- permision پوشه برای دسترسی به تغییرات روی فایل. البته با chmod از ۴تا پوشه داخلی رفتم به پوشه محلی ذخیره فایل و دارم این کار رو انجام میدم

MMSHFE
سه شنبه 18 تیر 1392, 10:40 صبح
نه مشکل از اون نیست. احتمالاً مسیردهی مشکل داره.

مهرداد سیف زاده
سه شنبه 18 تیر 1392, 10:51 صبح
احتمالا تابع مشکلی نداره چون با کمک کلاس زیر براحتی عمل تغییر سایز انجام میگیره ولی با این تابعی که من نوشتم تصویر سیاه بر میگردونه

http://www.phpclasses.org/package/3904-PHP-Resize-and-place-watermarks-on-images.html

MMSHFE
سه شنبه 18 تیر 1392, 11:03 صبح
اینو امتحان کنید ببینید چی میشه:


function image_resize($filename)
{
if(file_exists($filename)) {
$src=imagecreatefromjpeg($filename);
$dst=imagecreatetruecolor(130,98);
imagecopyresized($dst,$src,0,0,0,0,130,98,imagesx( $src),imagesy($src));
imagejpeg($dst,$filename,10);
imagedestroy($src);
imagedestroy($dst);
}
else {
die('File Does Not Exists');
}
}

مهرداد سیف زاده
سه شنبه 18 تیر 1392, 11:25 صبح
مشکل حل شد
خطا از دریافت لینک توسط textbox بود. برنامه بصورتی بود که ابتدا تصویر آپلود میشد و بعد در صورت تمایل میتونه در textbox قرار بگیرد و کوچیک بشه. حالا این بین یه فضای خالی توی لینک دریافتی می‌افتاد که با تابع trim حلش کردم.
از راهنمایی شما هم خیلی خیلی ممنونم.