• 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
گرافیک در php
#1
با سلام
من از EasyPHP استفاده میکنم و میخوام با gd کار کنم.
با کمک phpinfo() معلومه که gd فعال هست ولی من در بین فایل های dll ، فایل php_gd2.dll رو دارم، آیا gd2 نسخه ی توسعه یافته ی gd هست؟

از کد زیر استفاده کردم اما اولین خطا در تابع imagecolorallocate اتفاق می افته:

<?php

header('Content-type:image/png');

$im=imagecreate(200,200);

$r=imagecolorallocate($im,255, 0, 0);

$b=imagecolorallocate($im,0,0,255);

imagefill($im,0,0,$b);

imageline($im,10,10,150,30,$r);

imagepng($im);

?>

تا حالا در چند سایت این سوال را مطرح کردم، امیدوارم اساتید این سایت مشکل من را حل کنند. در مرورگر ie دستور فوق هیچ خطایی ندارد اما با افزودن or die متوجه شدم که اواین خطا از کجاست.
لطفا راهنماییم کنید.
با تشکر
  پاسخ
تشکر شده توسط :
#2
چه خطایی دقیقا نشون میده؟
  پاسخ
تشکر شده توسط :
#3
در مرورگر ie :
اجرای کد به همین صورت هیچ تصویری رو نشون نمیده و تنها یک مربع با علامت ضرب رو نشون میده
اگر برای هر تابع از or die استفاده کنم و با تغییر کد خط 4 به صورت
$r=imagecolorallocate($im,255, 0, 0) or die('error');
، در این صورت متوجه شدم که با چاپ خطای error مشکل از این تابع است.

در مرورگر firefox :
با چاپ The image “http://localhost/m2.php” cannot be displayed, because it contains errors. اجرای بقیه ی دستور متوقف می شود اما با حذف تابع header این خطا رو نداره و در صورت استفاده از or die خطای ذکر شده در این تابع را چاپ میکند و اگر از این تابع استفاده نکنم ( و با حذف heder. با وجود header ، با اجرای آن اجرای برنامه خاتمه می یابد) یه سری کاراکترهای غیر قابل فهم چاپ میکنه.

فکر نمیکنم مشکل از کامپیوتر من باشه چون در یک هاست رایگان آپلود کردم ولی تصویری ندیدم!
  پاسخ
تشکر شده توسط :
#4
phpinfo بگیرید ببینید gd2 فعال هست یا خیر. در صورت امکان از ایمیج مجیک استفاده کنید چون خیلی قوی تر هست.
  پاسخ
تشکر شده توسط :
#5
حالا ایمیج مجیک روی کدوم سرور نصب هست
وقتی که اخطار The image “http://localhost/m2.php” cannot be displayed, because it contains errors. رو دیدی یه view source بزن‌ ببین محتوا چی هست. چه اخطاری داده
  پاسخ
تشکر شده توسط :
#6
در firefox این اخطار را داشت که گزینه ی Page Source آن غیر فعال هست.
با توجه با اینکه در سرور هم همین خطا رو داشت، کد درسته؟
  پاسخ
تشکر شده توسط :
#7
توی‌ FF از‌ منوی view گزینه‌ page source یا‌ کلید ctrl + U‌ رو‌ بزنین‌. اگر ‌باز نتونستین‌ ببینین. header که‌ می فرستین تا نوع عکس رو مشخص کنه رو پاک کنین تا خروجی رو ببینین. منظورم‌ حذف کد
header('Content-type:image/png');
هست
  پاسخ
تشکر شده توسط :
#8
با ارسال header که غیر فعال هست ولی با حذف این دستود در page source مقدار زیر دیده میشه :
�PNG

���
IHDR�������������<����PLTE������l������IDATx����@0Fa��Q JQ��fF#t��`ĉl6�x��L���~$����������,���4*�AJ�����2+M�g���,;�<+�u��o!H�YNL��i�*��d����zy!�y� � � � ȷ�,di�'�h����IEND�B
`�
  پاسخ
تشکر شده توسط :
#9
اگه میشه یه نگاه به آدرس http://khabargozari.freehostia.com/gd/gd.php بندازید.
اگه تونستید تصویری ببینید احتمالا مشکل از کارت گرافیک و یا یه چیز دیگه ی کامپیوترم هست و کد مشکلی نداره.
با تشکر
  پاسخ
تشکر شده توسط :
#10
با استفاده از xampp مشکلم حل شد.
  پاسخ
تشکر شده توسط :


پرش به انجمن:


کاربران در حال بازدید این موضوع: 1 مهمان