نمایش نتایج 1 تا 9 از 9

نام تاپیک: برنامه نویسی گرافیکی در PHP

  1. #1
    کاربر تازه وارد آواتار Pedram77
    تاریخ عضویت
    فروردین 1394
    محل زندگی
    Tehran
    پست
    91

    برنامه نویسی گرافیکی در PHP

    تو این تاپیک قصد دارم برنامه نویسی گرافیکی توی PHP رو یاد بدم و اطلاعات کم خودمو با شما ها در میون بذارم.
    تصاویر، زبان های بسیار گوناگونی دارند و اطلاعاتی را در اختیار دیگران قرار میدهند و زیبایی خاصی به وبسایت می بخشند. در PHP توابع زیادی برای رسم و دستکاری گرافیکی دارد. این توابع در کتابخانه ای به نام GD قرار دارند. برای استفاده از این کتابخانه مراحل زیر را انجام دهید:

    1. فایل PHP.ini را باز کنید. (xampp,wamp,easyPHP,...).
    2. دستور extension = php_gd2.dll را در آن پیدا کنید
    3. اگر قبل از آن علامت " ; " قرار داشت آن علامت را بردارید.
    4. فایل را ذخیره کنید و سیستم را ریست کنید (فقط همان نرم افزار)
    5. کتابخانه قابل استفاده است.



    PHP چه فرمت هایی را پشتیبانی میکند؟
    کتابخانه GD فرمت های زیر را پشتیبانی میکند.

    • Jpeg
    • PNG
    • WBMP
    • GIF



    ایجاد تصاویر
    اکنون میخواهیم به چگونگی ساخت تصاویر بپردازیم. مراحل ایجاد تصاویر به این صورت است :

    1. ایجاد بوم نقاشی برای کار کردن روی آن
    2. رسم اشکال یا چاپ متن روی آن
    3. چاپ گرافیک در مرورگر
    4. پاک کردن حافظه با حذف بوم


    حال به جزئیات میپردازیم:

    ایجاد بوم نقاشیبرای ساخت تصاویر در PHP باید یک شناسه تصویر ایجاد شود. دو روش برای انجام این کار وجود دارد: 1- ساخت بوم نقاشی جدید 2- استفاده از یک تصویر موجود به عنوان بوم
    در روش اول از تابع ImageCreate() استفاده میشود :
    $im = ImageCreate($width,$height);

    پارامتر width عرض بوم و پارامتر height ارتفاع بوم را مشخص میکند (هر دو پیکسل). این تابع شناسه ی بوم را در متغیر $im قرار میدهد.
    در روش دوم از توابع زیر استفاده میشود :

    • ImageCreateFromJPEG()
    • ImageCreateFromGIF()
    • ImageCreateFromPNG()


    مثلا کد زیر یک تصویر JPEG را به عنوان بوم قرار میدهد :
    $im = ImageCreateFromJPEG("board.jpg");


    سیستم مختصات تصویر
    همیشه در تصاویر PHP (و اکثر زبان ها) مبدا تصویر یعنی نقطه ی (0,0) در گوشه بالا سمت راست قرار دارد.

    ترسیم یا نوشتن متن روی بوم
    پس از ایجاد بوم باید رنگی را برای ترسیم انتخاب شود. انتخاب رنگ توسط تابع ImageColorAllocate() انجام میشود که به صورت زیر است:
    $pen = ImageColorAllocate(canvas,red,green,blue);

    پارامتر canvas همان شناسه ی بوم است ($im) سه پارامتر بعدی هم سیستم رنگی rgb است که هر کدام از 0 تا 255 میتواند مقدار دهی شوند. کد زیر یک قلموی قرمز تولید میکند که میتواند در پروژه استفاده شود:
    $red = ImageColorAllocate($im,255,0,0);


    به طور کلی برای رسم هر گونه متن، مربع، دایره، چند ضلعی و... به پارامتر های زیر نیاز است :

    • شناسه بوم
    • مختصات شروع و بعضی اوقات پایان شکل
    • رنگ ترسیم
    • برای متن اطلاعات فونت



    رسم خط (Line)
    برای رسم خط از تابع ImageLine() استفاده میشود که به صورت زیر است:
    ImageLine($im,x1,y1,x2,y2,color);

    پارامتر اول شناسه بوم است. چهار پارامتر بعدی نقطه ی شروع و پایان است و color همان رنگ است که در قسمت بالا گفته شد.($red)
    یک نمونه از رسم خط :

    $im = ImageCreate(200,150);
    $blue = ImageColorAllocate($im,0,0,255);
    ImageLine($im,10,10,150,30,$blue);

    رسم دایره (Circle)
    برای رسم خط از تابع ImageArc() استفاده میشود که به صورت زیر است:
    ImageArc(image,x,y,w,h,start,end,color);

    پارامتر اول شناسه بوم است.x و y مختصات مرکز دایره هستند. w و h عرض و ارتفاع دایره هستند که اگر مساوی باشند ما یک دایره خواهیم داشت در غیر این صورت یک بیضی خواهیم داشت.start نقطه ی شروع کمان است و end نقطه پایان کمان (هر دو به درجه) مثال :
    ImageArc($im,150,65,70,70,0,360,$blue);


    ترسیم چهار گوش (Rectangle)
    برای رسم چهار گوش از تابع ImageRectangle() استفاده میشود :
    ImageRectangle(image,x1,y1,x2,y2,color);

    پارامتر ها روشن هستند و نیاز به توضیح ندارند.

    چاپ گرافیک در مرورگر
    برای نمایش تصویر نهایی در مرورگر دو راه وجود دارد 1- نمایش مستقیم 2- ذخیره در فایل.
    برای نمایش تصویر باید آن را به مرورگر اعلام کرد. این کار با تابع header انجام میشود:

    • header("content_type : image/jpeg")
    • header("content_type : image/png")
    • header("content_type : image/gif")


    بعد از اعلام به مرورگر آمادگی فرستادن تصویر به مرورگر را داریم. برای این کار از توابع زیر استفاده میشود:

    • ImagePng(image)
    • ImageJpeg(image)
    • ImageGif(image)


    بسته به نوع مورد نظرتان یکی را بنویسید.

    روش دوم ذخیره در یک فایل است (روش پیشنهادی من چون من از روش قبل تو مرورگرم جواب نمیگیرم شما امتحان کنید شاید بشه) برای این منظور از توابع قبل (مثل ImageJpeg) استفاده میشود فقط با چند پارامتر بیشتر.
    ImageJpeg($im,"image.jpg",100);

    پارامتر سوم میتواند از 1 تا 100 باشد که به معنای کیفیت فایل است.

    حذف تصویر
    بعد از اتمام کار تصویر باید حذف شود (اختیاری):
    ImageDestroy($im);


    برای شما دو مثال که خودم نوشتم قرار میدم. اینو بگم که توی فایلها یسری نکات رو استفاده کردم که اینجا نگفتم ولی کاملا واضحه.

    امیدوارم تونسته باشم چیزایی که میدونستمو خوب انتقال بدم
    فایل های ضمیمه فایل های ضمیمه

  2. #2
    کاربر دائمی آواتار reza_alie
    تاریخ عضویت
    فروردین 1394
    محل زندگی
    <Tehran/>
    پست
    449

    نقل قول: برنامه نویسی گرافیکی در PHP

    اینم سورس captcha


    <?php

    header("Content-type: image/jpeg");
    @session_start();
    $char=chr(rand(97,122));
    $num=rand(0,9);
    $total=$char.=$num;
    $md5=md5($total);
    $text=substr($md5,0,6);
    $_SESSION["captcha"] = $text;
    $height = 40;
    $width = 100;
    $image = imagecreate($width, $height);
    $black = imagecolorallocate($image, 0, 0, 0);
    $white = imagecolorallocate($image, 255, 0, 0);
    $white_color=imagecolorallocate($image,255,255,255 );
    $angle=rand(-5,9);
    imagettftext($image,20,$angle,7,30,$white,'./impact.ttf',$text);
    imageline($image,rand(0,10),rand(0,50),rand(0,100) ,rand(0,100), $white_color);
    imageline($image,rand(0,100),rand(0,100),rand(0,10 0),rand(0,100), $white_color);
    imageline($image,rand(0,100),rand(0,9),rand(4,50), rand(0,100), $white_color);
    imagejpeg($image, null,1000);
    imagedestroy($image);

    ?>


  3. #3

    نقل قول: برنامه نویسی گرافیکی در PHP

    خیلی ممنون
    عالی بود
    کاش هرکس اطلاعات خودش رو اینطوری در دسترس میزاشت.
    مرسی

  4. #4
    کاربر تازه وارد آواتار Pedram77
    تاریخ عضویت
    فروردین 1394
    محل زندگی
    Tehran
    پست
    91

    نقل قول: برنامه نویسی گرافیکی در PHP

    نقل قول نوشته شده توسط olampiad مشاهده تاپیک
    خیلی ممنون
    عالی بود
    کاش هرکس اطلاعات خودش رو اینطوری در دسترس میزاشت.
    مرسی
    «الزکات العلم نشرهُ»
    «زکات علم نشر آن است»
    مولا علی (ع)

  5. #5
    کاربر دائمی آواتار reza_alie
    تاریخ عضویت
    فروردین 1394
    محل زندگی
    <Tehran/>
    پست
    449

    نقل قول: برنامه نویسی گرافیکی در PHP

    نقل قول نوشته شده توسط Pedram77 مشاهده تاپیک
    «الزکات العلم نشرهُ»
    «زکات علم نشر آن است»
    مولا علی (ع)
    افرین ای کاش همه به این باور می رسیدند!!!

  6. #6

    نقل قول: برنامه نویسی گرافیکی در PHP

    سلام و خسته نباشید به دوستان عزیز
    من میخوام سایز تصاویر رو تغییر بدم.
    میخوام طول و عرض تصاویر رو تغییر بدم:
    تو اینترنت خیلی سرچ کردم و این تابع رو به دست آوردم.
    به این توابع یه نگا بندازید.
    آیا برای تغییر سایز تصاویر در پی اچ پی از این تابع استفاده میکنن؟
    میشه تو این زمینه راهنماییم کنین؟
    مرسی

    () imagecopyresized



  7. #7
    کاربر دائمی آواتار reza_alie
    تاریخ عضویت
    فروردین 1394
    محل زندگی
    <Tehran/>
    پست
    449

    نقل قول: برنامه نویسی گرافیکی در PHP


  8. #8

    نقل قول: برنامه نویسی گرافیکی در PHP

    سلام و خسته نباشید به دوستان عزیز
    به این کد من ی نگا بندازید.

    $im =imagecreatefromjpeg("t.jpg");
    $width = imagesx($im);
    $height = imagesy($im);
    $x = $width-500;
    $y = $height-500;
    $im2 = imagecreate($x,$y);
    imagecopyresampled($im2,$im,0,0,0,0,$x,$y,$width,$ height);
    imagejpeg($im2,"image.jpg",100);

    من این کد رو نوشتم ولی تصاویری رو که بیرون میده همش به رنگ آبی درمیان؟
    مشکل از کجاست.
    این ی نمونه از تصاویری هستش که خروجی گرفتم.
    http://s4.picofile.com/file/8180826492/image.jpg

  9. #9
    کاربر تازه وارد آواتار Pedram77
    تاریخ عضویت
    فروردین 1394
    محل زندگی
    Tehran
    پست
    91

    نقل قول: برنامه نویسی گرافیکی در PHP


تاپیک های مشابه

  1. کتاب هایی درباره برنامه نویسی گرافیکی
    نوشته شده توسط fatemeh.ha در بخش طراحی و ساخت بازی‌های کامپیوتری
    پاسخ: 5
    آخرین پست: سه شنبه 20 مرداد 1388, 01:05 صبح
  2. کمک برای برنامه نویسی گرافیکی در C
    نوشته شده توسط Hossein_IT در بخش برنامه نویسی با زبان C و ++C
    پاسخ: 1
    آخرین پست: جمعه 18 مرداد 1387, 10:49 صبح
  3. برنامه نویسی گرافیکی
    نوشته شده توسط رهنورد2 در بخش برنامه نویسی با زبان C و ++C
    پاسخ: 2
    آخرین پست: دوشنبه 12 تیر 1385, 07:24 صبح
  4. برنامه نویسی گرافیکی
    نوشته شده توسط رهنورد2 در بخش برنامه نویسی در Delphi
    پاسخ: 0
    آخرین پست: جمعه 12 خرداد 1385, 16:29 عصر

برچسب های این تاپیک

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •