php-gd-[www.parsbook.org]

Page 1

‫گرافیک بیتی پًیا در ‪ php‬با استفادٌ از ‪GD‬‬ ‫ػطح ‪ :‬هقذهبسی‬ ‫هؤلف ‪Jacek Artymiak :‬‬

‫هششجن ‪ :‬هؼؼَد اهجذی‬

‫بخص ايل ‪ -‬قبل از ایىکٍ ضريع کىیذ‬ ‫در مًرد ایه آمًزش‬ ‫اگش دس کبس یب دشٍطُ سبى ًیبص ثِ ًَؿشي ثشًبهِ ّبی گشافیکی ثب ‪ php‬سا داؿشِ ثبؿیذ‪ ،‬ایي‬ ‫آهَصؽ هی سَاًذ ؿوب سا دس سَلیذ سلبٍیش ثیشی دَیب ثب اػشفبدُ اص ‪ ٍ php‬کشبثخبًِ ی ‪ gd‬یبسی کٌذ‪.‬‬ ‫یک ػکغ ثْشش اص ّضاس کلوِ اػز‪ ،‬هخلَكب اگش اص آى ثشای ًـبى دادى سجبسر‪ ،‬اهَس هبلی‬ ‫یب اطالػبر ػلوی اػشفبدُ ؿَد‪ .‬اگش ؿوب ثشَاًیذ سلبٍیش سا ثب سَجِ ثِ دسخَاػز ّب ایجبد کٌیذ‪،‬‬ ‫سبثیش آًْب چٌذیي ثشاثش هی ؿَد ٍ هی سَاًذ آخشیي اطالػبر سا دس قبلت سلبٍیش ثِ سلَیش ثکـذ‪.‬‬

‫اَذاف‬ ‫دس دبیبى ایي آهَصؽ ؿوب قبدس خَاّیذ ثَد اػکشیذز ّبیی سا ثشای ایجبد سلبٍیش ثیشی ثب‬ ‫‪ ٍ php‬کشبثخبًِ ی ‪ gd‬ثٌَیؼیذ‪ .‬ؿوب خَاّیذ سَاًؼز ثِ ساحشی اطالػبر سجبسی ‪ ،‬هبلی ٍ ػلوی سا‬ ‫ثِ سلَیش ثکـیذ‪ .‬ثِ ٍیظُ ؿوب هَاسد صیش سا هی آهَصیذ ‪:‬‬ ‫‪ ‬اكَل سٌظین ػیؼشن ‪gd‬‬ ‫‪masoudmanson | Php & GD‬‬ ‫‪www.ParsBook.org‬‬


‫‪ً ‬کبر هخلَف ػیؼشن ػبهل ثشای سؼْیل سٌظین ػیؼشن‬ ‫‪ً ‬کبر هشثَط ثِ ًلت ‪php/gd‬‬ ‫‪ ‬هشاحل آهبدُ ػبصی ‪canvas , color palette , background fill/image‬‬ ‫‪ ‬اكَل اٍلیِ ی طشاحی ثب ‪gd‬‬ ‫‪ ‬سوشیي ّبیی ثشای کوک ثِ اسائِ ی ًشبیج سلَیشی دادُ ّب‬ ‫‪ً ‬کبسی دیشاهَى اًشخبة فشهز هٌبػت ثشای فبیل ّب‬ ‫‪ ‬دػشَسالؼول ّبیی ثشای جب دادى اػکشیذز ّبیشبى دس کذ ّبی ‪html‬‬

‫سیستم مًرد ویاز‬ ‫ؿوب ًیبص داسیذ سب ثِ ‪:‬‬ ‫‪ ‬یک ػیؼشن ػبهل خَة دػششػی داؿشِ ثبؿیذ‪ .‬هي ػیؼشن ػبهل ّبی صیش سا دیـٌْبد هی‬ ‫کٌن ‪:‬‬ ‫‬‫‬‫‬‫‪-‬‬

‫‪Linux‬‬ ‫‪Free/Net/OpenBSD‬‬ ‫‪Microsoft Windows XP/7‬‬ ‫‪Mac OS X‬‬

‫دیگش ػیؼشن ّبی ‪ unix‬دبیِ ّن دس كَسسی کِ ثشَاًٌذ ‪ Apache , Php , gd‬سا اجشا کٌ​ٌذ هی‬ ‫سَاًٌذ هَسد اػشفبدُ قشاس ثگیشًذ‪.‬‬ ‫ یک ‪ CPU‬ثب کالک ‪ 100MHz‬یب ثیـشش‬‫ ‪ 32MB‬سم یب ثیـشش‬‫ ‪ّ 500MB‬بسد دیؼک‬‫ػالٍُ ثش ایي ؿوب هی سَاًیذ اص یک ‪ HTTP server‬کِ ‪ php‬سا ػبدَسر هی کٌذ اػشفبدُ کٌیذ کِ‬ ‫دس ایي كَسر ثِ کشبثخبًِ ّبی صیش ًیض ًیبص خَاّیذ داؿز‪:‬‬ ‫‪masoudmanson | Php & GD‬‬ ‫‪www.ParsBook.org‬‬


freetype2 zlib libpng libjpeg6

-

‫ساخت ابسار مًرد ویاز با استفادٌ از سًرس کذ آوُا‬ ‫اگش ؿوب ًشَاًیذ ثؼشِ ّبی کبهذبیل ؿذُ ی آهبدُ سا ثشای ػیؼشن سبى دیذا کٌیذ هججَس خَاّیذ‬ .‫ ثؼبصیذ‬GCC ‫ ّوبًٌذ‬ANSI C/C++ ‫ؿذ خَدسبى آًْب سا ثب اػشفبدُ اص یک کبهذبیلش‬ : ‫ثؼشِ ّبی هَسد ًیبص سا هی سَاًیذ اص لیٌک ّبی صیش دسیبفز کٌیذ‬ • Apache: http://www.apache.org/dist/httpd/ • PHP: http://www.php.net/downloads.php • gd: http://www.boutell.com/gd/ • libpng: http://www.libpng.org/pub/png/libpng.html • zlib: http://www.gzip.org/zlib/ • libjpeg: http://www.ijg.org/ • freetype2 (optional, required for rendering TrueType fonts): http://www.freetype.org/ • t1lib (optional, required for rendering Type 1 fonts): http://freshmeat.net/projects/t1lib/ ‫ثشای اطالػبر ثیـشش دس هَسد ًحَُ ی ًلت ٍ ػبخز ثؼشِ ّبی ثبال هی سَاًیذ ثِ فبیل‬ ‫ ؿوب ثبیذ ثؼشِ ّب سا ثِ سشسیت صیش‬.‫ ّش کذام اص آًْب هشاجؼِ کٌیذ‬INSTALL ‫ یب‬README ‫ّبی‬ :‫ًلت کٌیذ‬ masoudmanson | Php & GD www.ParsBook.org


‫‬‫‬‫‬‫‬‫‬‫‬‫‬‫‪-‬‬

‫‪zlib‬‬ ‫‪libpng‬‬ ‫‪libjpeg‬‬ ‫‪freetype2‬‬ ‫‪t1lib‬‬ ‫‪gd‬‬ ‫‪Apache‬‬ ‫‪Php‬‬

‫اکثش ایي ثؼشِ ّب سا هی سَاى ثب کذ صیش ًلت کشد ‪:‬‬ ‫‪$ ./configure‬‬ ‫‪$ ./make‬‬ ‫‪$ sudo ./make install‬‬

‫ابسار َای اضافی‬ ‫دیگش اثضاسی کِ ثشای ایي کبس ًیبص داسیذ یک هشٍسگش ٍة ٍ یک سکؼز ادیشَس هی ثبؿذ‪.‬‬ ‫ثشای هشٍسگش هی سَاًیذ اص ‪ ... ٍ Mozilla Firefox , Opera , Chrome , IE‬اػشفبدُ کٌیذ‪.‬‬ ‫ثشای ‪ّ text editor‬ن هی سَاًیذ اص ‪ vi , emacs , BBEdit‬ثشای لیٌَکغ ٍ ‪Notepad ,‬‬ ‫‪ Wordpad , ...‬ثشای ٍیٌذٍص اػشفبدُ کٌیذ‪.‬‬

‫تست ‪php/gd‬‬ ‫صهبًی کِ سوبهی اثضاس ّبی هَسد ًیبص سا ًلت کشدیذ هی سَاًیذ ثب اػشفبدُ اص دٍ اػکشیذز‬ ‫ػبدُ صیش هطوئي ؿَیذ کِ ‪ gd‬ؿوب فؼبل ؿذُ اػز ٍ کبس هی کٌذ‪.‬‬ ‫اثشذا یک كفحِ ی ػبدُ ‪ php‬ایجبد کشدُ ٍ کذ صیش سا دس آى ثٌَیؼیذ ‪:‬‬ ‫‪<?php‬‬ ‫;)(‪phpinfo‬‬ ‫>?‬

‫اػکشیذز ثبال سا ثب ًبم ‪ test.php‬دس دایشکشَسیِ ‪ www‬خَد رخیشُ کشدُ ٍ ثب هشٍسگش اجشا کٌیذ‪.‬‬ ‫ثِ كَسر ‪:‬‬ ‫‪masoudmanson | Php & GD‬‬ ‫‪www.ParsBook.org‬‬


http://localhost/test.php

‫ سفشِ ٍ ثشسػی‬gd ‫ ثِ قؼوز‬.‫ خَاّیذ دیذ‬php ‫دس ایي كفحِ ؿوب جذٍل ثضسگی اص سوبهی هَاسد‬ ‫کٌیذ کِ آیب فؼبل ؿذُ اػز یب ًِ ؟‬

:‫ ثٌَیؼیذ‬gd ‫ػذغ اػکشیذز صیش سا ثشای سؼز‬ <?php header (“Content-Type: iamge/jpeg”); #set the dimentions of the canvas $cw = 500; $ch = 300; #create canvas $c = imagecreate ($cw , $ch); #generate color palette for ($n=0 ; $n <=255 ; $n++) { $cols[$n] = imagecolorallocate ($c , $n , $n , $n); } #create background imagefilledrectangle ($c , 0 , 0 , 600 , 400 , $cols[255]);

masoudmanson | Php & GD www.ParsBook.org


#display all characters in a font $font = 4; $dx = imagefontwidth($font); $dy = imagefontheight($font); $x = ($cw / 2) - (16 * $dx); $y = ($ch / 2) - (4 * $dy); $m = 0; $z = 0; for ($n = 0; $n <= 7; $n++) { for ($m = 0; $m <= 31; $m++) { imagechar($c, $font, $x + $dx * $m, $y, chr($z), $cols[0]); $z++; } $y = $y + $dy; } #draw a nice thin border around the edges of the image imagerectangle($c, 0, 0, $cw-1, $ch-1, $cols[0]); #generate image imagejpeg($c); ?>

:‫ًشیجِ ی کذ ثبال ؿکل صیش خَاّذ ثَد‬

masoudmanson | Php & GD www.ParsBook.org


‫بخص ديم ‪ -‬بروامٍ ی خًدتان را بىًیسیذ‪ :‬قذم َای ايل‬ ‫با ‪ header‬درست ضريع کىیذ‬ ‫حبال کِ سؼز ّبی اٍلیِ سا اًجبم دادیذ‪ٍ ،‬قز آى اػز کِ اػکشیذز ّبی ‪ gd‬خَدسبى سا ثٌَیؼیذ‪.‬‬ ‫ثشای ایي کبس ؿوب ثبیذ ػبخشبس ّبی ػوَهی یک اػکشیذز ‪ gd‬سا یبد ثگیشیذ‪.‬‬ ‫ّش اػکشیذشی کِ گشافیک ایجبد هی کٌذ ثبیذ ثب کذ صیش ؿشٍع ؿَد‪:‬‬ ‫;)”‪header (“Content-Type: image/jpeg‬‬

‫ثب اػشفبدُ اص سبثغ )(‪ header‬ؿوب ‪ HTTP headers‬سا کِ سَػط ػشٍیغ دٌّذُ ی ‪HTTP‬‬ ‫(‪ )HTTP Server‬ثِ ػشٍیغ گیشًذُ ‪ )HTTP Client( HTTP‬اسػبل هیگشدد سا هقذاس دّی هی‬ ‫کٌیذ‪ .‬یکی اص ایي ‪ّ header‬ب ‪ Content-Type ،‬هی ثبؿذ کِ ثِ ‪ HTTP Client‬اػالم هی کٌذ‬ ‫کِ چِ ًَع دادُ ای دسیبفز خَاّذ کشد‪ client .‬اص ایي اطالػبر ثشای سلوین گیشی دس هَسد ًحَُ‬ ‫ی اجشای دادُ ّبی دسیبفشی اػشفبدُ هی کٌذ‪ .‬ػذغ هوکي اػز ‪ client‬ثشای دشداصؽ ایي دادُ‬ ‫ّب اص هجذل ّبی خبسجی اػشفبدُ کٌذ یب دیغبهی هجٌی ثش ایٌکِ ثِ سٌْبیی ًوی سَاًذ ایي اطالػبر سا‬ ‫دشداصؽ کٌذ‪ ،‬كبدس ًوبیذ‪.‬‬ ‫ثشای هثبل ‪ image/jpeg ،‬ثِ ‪ client‬هی گَیذ کِ یک ػکغ ثیشی دس فشهز ‪ jpeg‬سا دسیبفز‬ ‫خَاّذ کشد‪ .‬حبال ‪ client‬هی سَاًذ سلوین ثگیشد کِ آیب دادُ ی دسیبفشی سا دشداصؽ کٌذ‪ ،‬اص یک‬ ‫ًوبیـگش خبسجی اػشفبدُ کٌذ یب ثِ کبسثش ثگَیذ کِ ًوی سَاًذ ایي ًَع خبف سلَیش سا ًوبیؾ دّذ‪.‬‬ ‫ثؼذ اص ایٌکِ ‪ Content-Type‬ثِ هشٍسگش اسػبل ؿذ‪ ،‬اػکشیذز ؿوب هی سَاًذ کبسی سا کِ ثشای آى‬ ‫هٌظَس طشاحی ؿذُ اػز سا اًجبم دّذ‪ .‬ثِ خبطش ثؼذبسیذ کِ سٌْب خشٍجی اػکشیذز ؿوب سؿشِ‬ ‫ّبی ثیشی هی ثبؿذ کِ سلَیش سا سـکیل هی دٌّذ‪ .‬ایي اهش ثبػث هی ؿَد سب ًشَاًیذ اص دػشَساسی‬ ‫هثل ‪ print ٍ echo‬ثشای ًَؿشي کذ ّبی ‪ html‬دس آى اػکشیذز اػشفبدُ کٌیذ‪.‬‬

‫‪masoudmanson | Php & GD‬‬ ‫‪www.ParsBook.org‬‬


‫اهب ًگشاى ًجبؿیذ ‪ ،‬دس اداهِ ی ّویي آهَصؽ ًحَُ ی افضٍدى کذ ّبی ‪ html‬سا ثِ یک اػکشیذز‬ ‫‪ gd‬ثشسػی خَاّین کشد‪ .‬فؼال ًحَُ ی ػبخشي یک سلَیش ‪ bitmap‬ثب ‪ gd‬سا یبد ثگیشیذ‪.‬‬

‫آمادٌ سازی ‪( canvas‬پردٌ وقاضی)‬ ‫قبل از ایىکٍ چیسی بکطیذ مثل یک وقاش ياقعی ايل پردٌ وقاضی (‪ )canvas‬را آمادٌ‬ ‫کىیذ‪ .‬ایه کار را می تًاویذ با فراخًاوی تابع )(‪ imagecreate‬اوجام دَیذ‪:‬‬ ‫‪#set the dimentions of the canvas‬‬ ‫;‪$cw = 500‬‬ ‫;‪$ch = 300‬‬ ‫‪#create canvas‬‬ ‫;)‪$c = imagecreate ($cw , $ch‬‬

‫ػذدی کِ سبثغ )(‪ imagecreate‬ثش هیگشداًذ سَػط سوبهی سَاثؼی کِ ثب ػکغ کبس داسًذ هَسد‬ ‫اػشفبدُ قشاس هی گیشد‪ .‬ایي کبس ثِ ؿوب ایي اهکبى سا هیذّذ کِ ثشَاًیذ ثیؾ اص یک ػکغ سا دس یک‬ ‫اػکشیذز ایجبد کٌیذ‪ .‬ثْش حبل‪ ،‬اػشفبدُ اص ایي ٍیظگی هحذٍدیز ّبیی ّن داسد‪ ،‬چشا کِ اػکشیذز‬ ‫هی سَاًذ سٌْب یک ػکغ سا ثِ ‪ HTTP Client‬ای کِ فشاخَاًی اؽ کشدُ‪ ،‬ثفشػشذ‪.‬‬ ‫اص طشفی دیگش ّوبى طَس کِ ثؼذا خَاّیذ دیذ‪ ،‬هی سَاًیذ دٍ یب چٌذ ػکغ سا ثب ّن سشکیت کٌیذ ٍ‬ ‫یب ػکغ ّب سا دس‪ local disk‬یب ‪ server‬رخیشُ کٌیذ‪.‬‬ ‫سَجِ کٌیذ کِ هقبدیش ‪ dimension‬کِ طَل ٍ ػشم ػکغ سا هـخق هی کٌ​ٌذ ثبیذ ثب هقبدیش‬ ‫‪ height ٍ width‬دس سگ >‪ <img‬ثشاثش ثبؿٌذ‪ .‬دس غیش ایي كَسر سلَیش ًوبیؾ دادُ هی ؿَد‪،‬‬ ‫اهب ثِ ّن هی سیضد‪ .‬حشوب ثِ ایي هَسد دقز کٌیذ‪.‬‬

‫ایجاد ‪( Palette‬جعبٍ ی روگ)‬

‫‪masoudmanson | Php & GD‬‬ ‫‪www.ParsBook.org‬‬


‫اکٌَى ٍقز آى سػیذُ کِ کوی ثب سًگ ّب ثبصی کٌیذ‪ .‬اگش چِ ‪ gd 2.x‬هی سَاًذ ثب ‪ palette‬چٌذ‬ ‫هیلیَى سًگی کبس کٌذ اهب ثْشش اػز ؿوب اًذاصُ ی ‪ palette‬سبى سا ‪ 256‬سًگ اًشخبة کٌیذ سب ّن‬ ‫ثب ‪ّ gd 1.8.x‬وبٌّگ ثبؿذ ٍ ّن ثب ًؼخِ ّبی ثبالسش ‪.gd‬‬ ‫ّش سًگ دس ‪ palette‬ثب فشاخَاًی سبثغ )(‪ imagecolorallocate‬سَلیذ هی ؿَد کِ ایي سبثغ‬ ‫چْبس آسگَهبى دسیبفز هیکٌذ ‪:‬‬ ‫ جبیگبُ سًگ دس ‪palette‬‬‫ هقذاس هـخلِ ی ‪ red‬ػذدی ثیي ‪255-0‬‬‫ هقذاس هـخلِ ی ‪ green‬ػذدی ثیي ‪255-0‬‬‫ هقذاس هـخلِ ی ‪ blue‬ػذدی ثیي ‪255-0‬‬‫ثشای هثبل کذ صیش یک ‪ palette‬خبکؼششی ایجبد هی کٌذ‪:‬‬ ‫‪# Generate color palette‬‬ ‫)‪for ($n = 0; $n <= 255; $n++‬‬ ‫{‬ ‫;)‪$cols[$n] = imagecolorallocate($c, $n, $n, $n‬‬ ‫}‬

‫اگشچِ ًیبصی ًیؼز ؿوب کل ‪ palette‬سا دس اثشذا ثشًبهِ سؼشیف کٌیذ ٍ هی سَاًیذ آى سا ثؼذا دس‬ ‫طَل اػکشیذز ّن سغییش دّیذ‪ ،‬اهب سؼشیف آى دس اثشذای کذ خیلی صیجبسش اػز‪ .‬ثشای دٍثبسُ سؼشیف‬ ‫کشدى یک سًگ اص سبثغ )(‪ imagecolorallocate‬ثب ّوبى ‪ color ID ٍ canvas ID‬اهب ثب‬ ‫هقبدیش هشفبٍسی اص ‪ ، R , G , B‬اػشفبدُ کٌیذ‪ .‬ؿوب ّوچٌیي هی سَاًیذ یک سًگ سا ثب اػشفبدُ اص‬ ‫سبثغ )(‪ imagecolordeallocate‬اص ‪ palette‬دبک کٌیذ‪ ،‬هثل ‪:‬‬ ‫;)]‪imagecolordeallocate($c , $cols[7‬‬

‫آمادٌ سازی ‪( Background‬پس زمیىٍ)‬ ‫اکٌَى ؿوب آهبدُ ایذ سب ؿبّکبس خَد سا سػن کٌیذ‪ .‬ؿوب آصادیذ سب اص ّش سکٌیکی کِ هی خَاّیذ‬ ‫اػشفبدُ کٌیذ‪ ،‬اهب ثِ یبد داؿشِ ثبؿیذ کِ اگش چیضی سا سػن کشدیذ ًوی سَاًذ ًبقق ثوبًذ‪ ،‬ثٌبثشایي‬ ‫سٍؿی کِ ػکغ خَد سا سػن هی کٌیذ هْن اػز‪.‬‬ ‫‪masoudmanson | Php & GD‬‬ ‫‪www.ParsBook.org‬‬


‫ثٌبثش ایي اٍلیي کبس ثشای اًجبم‪ ،‬سًگ کشدى ‪ canvas‬ثب اػشفبدُ اص یک سًگ ثبثز ٍ یب یک سلَیش‬ ‫‪ import‬ؿذُ اػز‪ .‬هبًٌذ کذ صیش ‪:‬‬ ‫‪# Create Background‬‬ ‫;)]‪ImageFilledRectangle($c, 0, 0, 499, 299, $cols[255‬‬

‫ّیچ سبثغ خبكی دغ صهیٌِ سا ایجبد ًوی کٌذ‪ ،‬ثٌبثشیي ؿوب هی سَاًیذ اص سبثغ‬ ‫)(‪ imagefilledrectangle‬اػشفبدُ کٌیذ کِ یک هؼشطیل سًگی سا ثش سٍی ‪ canvas‬سػن هی‬ ‫کٌذ‪ .‬آسگَهبى اٍل ایي سبثغ ‪ ID‬هؼشطیلی اػز کِ سػن ؿذُ اػز‪ .‬چْبس آسگَهبى ثؼذی ثِ سشسیت‬ ‫هخشلبر گَؿِ ی ثبال ػوز چخ ٍ گَؿِ ی دبییي ػوز ساػز هی ثبؿذ‪ .‬آسگَهبى آخش ّن ‪ID‬‬ ‫سًگی اػز کِ ثِ هؼشطیل صدُ ؿذُ اػز‪ .‬الجشِ هی سَاًیذ اص سبثغ )(‪imagefilledrectangle‬‬ ‫ثشای سػن هؼشطیل دس ّش جبی دیگشی اص اػکشیذز اػشفبدُ کٌیذ‪.‬‬ ‫سَجِ کٌیذ کِ سلبٍیش ‪ gd‬اص گَؿِ ی ثبال ػوز چخ ؿشٍع ؿذُ ٍ ثِ ػوز ساػز ٍ دبییي‬ ‫گؼششؽ هی یبثذ‪.‬‬ ‫سٍؽ دٍم اػشفبدُ اص فبیل ّبی آهبدُ ثِ ػٌَاى ‪ background‬هی ثبؿذ‪ .‬ثشای ایي هٌظَس هی‬ ‫سَاًیذ اص سَاثغ صیش اػشفبدُ کٌیذ‪:‬‬ ‫)(‪• ImageCreateFromGD‬‬ ‫)(‪• ImageCreateFromGD2‬‬ ‫)(‪• ImageCreateFromGD2Part‬‬ ‫)(‪• ImageCreateFromGIF‬‬ ‫)(‪• ImageCreateFromJPEG‬‬ ‫)(‪• ImageCreateFromPNG‬‬ ‫)(‪• ImageCreateFromString‬‬ ‫)(‪• ImageCreateFromWBMP‬‬ ‫)(‪• ImageCreateFromXBM‬‬ ‫)(‪• ImageCreateFromXPM‬‬ ‫‪masoudmanson | Php & GD‬‬ ‫‪www.ParsBook.org‬‬


‫)(‪• ImageCreateFromJPEG‬‬ ‫آسگَهبى ّبی ایي سَاثغ هی سَاًٌذ هؼیش فبیل ّبی ‪ ٍ local‬یب ‪ url‬فبیل ّبی ایٌششًشی ثبؿٌذ‪.‬‬ ‫ایي سٍؽ دػششػی ثِ فبیل ّب‪ ،‬اهکبى ٍیظُ ای سا ثشای ًَؿشي اػکشیذز ّبیی فشاّن هی کٌذ کِ‬ ‫سلبٍیش ثِ سٍص ؿذُ هثل سلبٍیش هبَّاسُ ای یب سلبٍیش خجشی ٍ ‪ ...‬سا ثِ كَسر دیٌبهیک داًلَد هی‬ ‫کٌذ ٍ ؿوب هی سَاًیذ اطالػبسی سا کِ خَدسبى هی خَاّیذ ثِ آًْب اضبفِ کشدُ ٍ یب آًْب سا ثب سلبٍیش‬ ‫دیگش سشکیت کٌیذ‪ .‬اگش ‪ gd 2.x‬سا ًلت کشدُ ثبؿیذ‪ ،‬ایي ٍیظگی ّب ثْشش کبس خَاٌّذ کشد ٍ ؿوب اص‬ ‫یک ‪ palette‬چٌذ هیلیَى سًگی ثْشُ هٌذ خَاّیذ ثَد‪.‬‬ ‫صهبًی کِ ؿوب سلَیشی سا ٍاسد هی کٌیذ ‪ ،‬هوکي اػز اًذاصُ آى سا الصم داؿشِ ثبؿیذ کِ هی سَاًیذ‬ ‫آى سا اص خشٍجی سبثغ )(‪ getimagesize‬دسیبفز ًوبییذ‪.‬‬

‫بخص سًم ‪ -‬اصًل ايلیٍ طراحی با ‪gd‬‬ ‫با پیکسل َا بازی کىیذ‬ ‫دغ اص ایٌکِ ‪ baclground‬آهبدُ ؿذ هی سَاًیذ ّش آًچِ سا کِ هی خَاّیذ ثب اػشفبدُ اص سَاثغ صیش‬ ‫سػن کٌیذ‪:‬‬ ‫)(‪• ImageSetPixel‬‬ ‫)(‪• ImageLine‬‬ ‫)(‪• ImageDashedLine‬‬ ‫)(‪• ImageRectangle‬‬ ‫)(‪• ImageFilledRectanlge‬‬ ‫)(‪• ImagePolygon‬‬ ‫)(‪• ImageFilledPolygon‬‬ ‫)(‪• ImageArc‬‬ ‫)(‪• ImageFilledArc‬‬ ‫‪masoudmanson | Php & GD‬‬ ‫‪www.ParsBook.org‬‬


‫ آسگَهبى ًیبص‬4 ِ‫ ایي سبثغ فقط ث‬.‫ یک دیکؼل سٌْب سا هی کـذ‬imagesetpixel() ‫ یؼٌی‬،‫سبثغ اٍل‬ : ‫داسد‬ Canvas ID X Coordinates Y Coordinates Color ID ‫ؿوب هی سَاًیذ اص ایي سبثغ ثشای افضٍدى جضئیبر ثِ سلبٍیشسبى اػشفبدُ کٌیذ ٍ یب اص سبثغ‬ : ‫ ّوبًٌذ هثبل صیش‬،‫ اػشفبدُ کٌیذ‬random() <?php header("Content-Type: image/jpeg"); #set the dimensions of the canvas $cw = 200; $ch = 200; #create canvas $c = imagecreate($cw, $ch); #generate color palette for ($n = 0; $n <= 255; $n++) { $cols[$n] = imagecolorallocate($c, $n, $n, $n); } #create background imagefilledrectangle($c, 0, 0, $cw, $ch, $cols[255]); #draw some pixels for ($n = 0; $n < $cw; $n++) { for ($m = 0; $m < $ch; $m++) { imagesetpixel($c, $n, $m, (int) rand(0, 255)); } $m = 0; } #generate image imagejpeg($c); ?>

: ‫اػکشیذز ثبال سلَیشی ثِ كَسر صیش ایجبد خَاّذ کشد‬

masoudmanson | Php & GD www.ParsBook.org


‫بخص چُارم ‪ -‬تصًر دادٌ َای ايلیٍ‬ ‫ساخت یک ساعت با استفادٌ از خطًط ي مىحىی َا‬ ‫دس حبلی کِ سلبٍیش ‪ random‬ثؼیبس صیجب ّؼشٌذ‪ ،‬اهب صیبد ثِ دسد ًوی خَسًذ (هگش ثشای طشاحبى‬ ‫گشافیکی کِ اص ایي سلبٍیش ثشای ایجبد ‪ّ texture‬ب اػشفبدُ هی کٌ​ٌذ)‪.‬‬ ‫هثبل صیش یک هثبل ثؼیبص جزاة سش اػز کِ ًحَُ ی اػشفبدُ اص ‪ gd‬ثشای ثِ سلَیش کـیذى دادُ‬ ‫ّبی ٍاقؼی سا ًـبى هی دّذ‪.‬‬ ‫هي اص صهبى کًٌَی ثشای ػبخز ػبػشی کِ صهبى ػشٍس سا ًـبى هی دّذ اػشفبدُ هی کٌن‪ .‬ایي‬ ‫ػبػز هثبل خَثی ثشای ًـبى دادى ًحَُ ی اػشفبدُ اص سَاثغ )(‪ٍ iamgeline() ، iamgearc‬‬ ‫)(‪ imagedashedline‬هی ثبؿذ‪.‬‬ ‫‪<?php‬‬ ‫;)"‪header("Content-Type: image/jpeg‬‬ ‫‪# Set the dimensions of the canvas‬‬ ‫;‪$cw = 300‬‬ ‫;‪$ch = 300‬‬ ‫‪# Create canvas‬‬ ‫;)‪$c = imagecreate($cw, $ch‬‬ ‫;)‪0, 0, 0‬‬ ‫;)‪255, 255, 255‬‬ ‫;)‪255, 0, 0‬‬ ‫;)‪0, 255, 0‬‬ ‫;)‪255, 0, 255‬‬

‫‪color palette‬‬ ‫‪imagecolorallocate($c,‬‬ ‫‪imagecolorallocate($c,‬‬ ‫‪imagecolorallocate($c,‬‬ ‫‪imagecolorallocate($c,‬‬ ‫‪imagecolorallocate($c,‬‬

‫‪# Generate‬‬ ‫= ]‪$cols[0‬‬ ‫= ]‪$cols[1‬‬ ‫= ]‪$cols[2‬‬ ‫= ]‪$cols[3‬‬ ‫= ]‪$cols[4‬‬

‫‪masoudmanson | Php & GD‬‬ ‫‪www.ParsBook.org‬‬


# Create background imagefilledrectangle($c, 0, 0, $cw - 1,$ch - 1, $cols[1]); # Compute coordinates of the center of the image $x = (int) $cw / 2; $y = (int) $ch / 2; # Draw the circular border imagearc($c, $x, $y, (int) ($cw * .9),(int) ($ch * .9), 0, 360,$color[0]); # Read local time $t = localtime(); # Initialize hour, minute, and second variables $th = $t[2]; $tm = $t[1]; $ts = $t[0]; # Convert hour from 24- to 12-hour format if ($th > 11) { $th -= 11; } # Prepare some constants $hi = deg2rad(30); $mi = deg2rad(6); $adj = deg2rad(90); # Compute $th = $hi $tm = $mi $ts = $mi

coordinates of the hour, minute, and second hands * $th - $adj; * $tm - $adj; * $ts - $adj;

# Compute the length and the coordinates of # the hour hand $hhl = $cw * .6; $hhx = $hhl * cos($th); $hhy = $hhl * sin($th); # Compute the length and the coordinates of # the minute hand $mhl = $cw * .7; $mhx = $mhl * cos($tm); $mhy = $mhl * sin($tm); # Compute the length and the coordinates of # the second hand $shl = $cw * .8; $shx = $shl * cos($ts); $shy = $shl * sin($ts); # Draw the hour hand imageline($c, $x, $y, $x + $hhx, $y + $hhy, $cols[2]); # Draw the minute hand

masoudmanson | Php & GD www.ParsBook.org


‫;)]‪imageline($c, $x, $y, $x + $mhx, $y + $mhy, $cols[3‬‬ ‫‪# Draw the second hand‬‬ ‫;)]‪imagedashedline($c, $x, $y, $x + $shx, $y + $shy,$cols[4‬‬ ‫‪# Generate image‬‬ ‫;)‪imagejpeg($c‬‬ ‫>?‬

‫ثؼذ اص اجشای اػکشیذز ثبال‪ ،‬ػبػز صیش سا خَاّیذ دیذ‪ .‬حبال ّش ٍقز هشٍسگش خَد سا ‪refresh‬‬ ‫کٌیذ‪ ،‬صهبى ‪ local‬ػشٍس سا خَاّیذ دیذ‪.‬‬

‫تصًیر سازی اطالعات عذدی‬ ‫هثبل ػبػز آًبلَگ یک هؼشفی جبلت ثشای سلَیش ػبصی دادُ ّب ثَد‪ ،‬اهب اػشفبدُ اص آى دس هَسد‬ ‫دادُ ّب سجبسی ٍ ػلوی کوی هحذٍدیز ثِ ّوشاُ داسد‪ .‬یک هثبل کبسثشدی سش ثشای سلَیش ػبصی‬ ‫دادُ ّب هی سَاًذ ًوَداس ًشبیج یک سحقیق دس ًَاحی هخشلف جغشافیبیی ثبؿذ‪.‬‬ ‫ثشای ایي هثبل فشم کٌیذ هي اص سَػؼِ دٌّذگبى کبلیفَسًیب‪ ،‬سگضاع ٍ ًیَیَسک خَاػشِ ام سب ثِ‬ ‫هي ثگَیٌذ کِ اص کذام دػکشبح اػشفبدُ هی کٌ​ٌذ‪ KDE، Gnome ،‬یب ‪ . GNUStep‬ػذغ هي‬

‫‪masoudmanson | Php & GD‬‬ ‫‪www.ParsBook.org‬‬


‫ ایي دقیقب کبسی اػز کِ اػکشیذز صیش اًجبم هی‬.‫ًشبیج سا ثش سٍی ًقـِ ی آهشیکب ًـبى خَاّن داد‬ .‫دّذ‬ <?php header("Content-Type: image/jpeg"); # Set the dimensions of the canvas $cw = 300; $ch = 300; # Define chart-drawing function function drawchart($c, $cx, $cy, $v1, $v2, $v3,$c0, $c1, $c2, $c3) { imagefilledrectangle($c, $cx, $cy - $v1,$cx + 10, $cy, $c1); imagerectangle($c, $cx, $cy - $v1,$cx + 10, $cy, $c0); imagefilledrectangle($c, $cx + 5, $cy - $v2,$cx + 15, $cy, $c2); imagerectangle($c, $cx + 5, $cy - $v2,$cx + 15, $cy, $c0); imagefilledrectangle($c, $cx + 10, $cy - $v3,$cx + 20, $cy, $c3); imagerectangle($c, $cx + 10, $cy - $v3,$cx + 20, $cy, $c0); } # Map displacement values $mdx = 0; $mdy = 0; # Make array of map points $usa[0] = 30 + $mdx; $usa[1] = 50 + $mdy; $usa[2] = 15 + $mdx; $usa[3] = 90 + $mdy; $usa[4] = 40 + $mdx; $usa[5] = 130 + $mdy; $usa[6] = 85 + $mdx; $usa[7] = 135 + $mdy; $usa[8] = 120 + $mdx; $usa[9] = 170 + $mdy; $usa[10] = 130 + $mdx; $usa[11] = 140 + $mdy; $usa[12] = 180 + $mdx; $usa[13] = 125 + $mdy; $usa[14] = 200 + $mdx; $usa[15] = 160 + $mdy; $usa[16] = 215 + $mdx; $usa[17] = 165 + $mdy; $usa[18] = 195 + $mdx; $usa[19] = 105 + $mdy; $usa[20] = 210 + $mdx; $usa[21] = 70 + $mdy; $usa[22] = 200 + $mdx; $usa[23] = 60 + $mdy; $usa[24] = 215 + $mdx; $usa[25] = 15 + $mdy; $usa[26] = 195 + $mdx; $usa[27] = 10 + $mdy; $usa[28] = 165 + $mdx; $usa[29] = 50 + $mdy; $usa[30] = 105 + $mdx; $usa[31] = 55 + $mdy; $usa[32] = 95 + $mdx; $usa[33] = 45 + $mdy; # Create canvas $c = imagecreate($cw, $ch); # Generate $cols[0] = $cols[1] = $cols[2] = $cols[3] = $cols[4] = $cols[5] =

color palette imagecolorallocate($c, imagecolorallocate($c, imagecolorallocate($c, imagecolorallocate($c, imagecolorallocate($c, imagecolorallocate($c,

0, 0, 0); 255, 255, 255); 255, 0, 0); 0, 255, 0); 0, 0, 255); 255, 255, 0);

masoudmanson | Php & GD www.ParsBook.org


‫‪# Create background‬‬ ‫;)]‪imagefilledrectangle($c, 0, 0, $cw - 1,$ch - 1, $cols[1‬‬ ‫‪# Draw map‬‬ ‫;)]‪imagefilledpolygon($c, $usa, 17, $cols[3‬‬ ‫‪# Draw map outline‬‬ ‫;)]‪imagepolygon($c, $usa, 17, $cols[0‬‬ ‫‪drawchart($c, 190, 100, 80, 70,55,$cols[0], $cols[4],‬‬ ‫;)]‪$cols[2],$cols[5‬‬ ‫‪drawchart($c, 100, 140, 60, 65, 40,$cols[0], $cols[4],‬‬ ‫;)]‪$cols[2],$cols[5‬‬ ‫‪drawchart($c, 40, 100, 40, 90, 55,$cols[0], $cols[4],‬‬ ‫;)]‪$cols[2],$cols[5‬‬ ‫‪# Generate image‬‬ ‫;)‪imagejpeg($c‬‬ ‫>?‬

‫ًشیجِ اػکشیذز ثبال‪ ،‬سلَیش صیش خَاّذ ثَد ‪:‬‬

‫سَجِ کٌیذ کِ دس اػکشیذز ثبال هي سبثغ )(‪ drawchart‬سا ثشای سػن ًوَداس ّب ایجبد کشدُ ام سب‬ ‫کبسم ساحز سش گشدد‪ .‬ؿوب ّن هی سَاًیذ اص ایي سٍؽ دس کبس ّبیشبى اػشفبدُ کٌیذ‪.‬‬ ‫ًقـِ ی آهشیکبیی کِ دس هثبل ثبال کـیذُ ؿذُ اػز‪ ،‬یک ًقـِ ی ثؼیبس ػبدُ هی ثبؿذ کِ ؿبهل‬ ‫آالػکب ٍ ّبٍایی ًیؼز‪ .‬ایي ًقـِ ثب اػشفبدُ اص سَاثغ )(‪ٍ imagepolygon‬‬ ‫)(‪ imagefilledpolygon‬کـیذُ ؿذُ اػز کِ ّش دٍ سبثغ آسایِ ای اص اػذاد سا ثِ ػٌَاى‬ ‫هخشلبر ًقبط چٌذ ضلؼی دسیبفز هی کٌ​ٌذ‪.‬‬

‫افسيدن کمی مته‬

‫‪masoudmanson | Php & GD‬‬ ‫‪www.ParsBook.org‬‬


‫ اهب ثب اػشفبدُ اص کوی هشي هی سَاى آى‬،‫هثبل قجلی کبس خَثی اص سجذیل هقبدیش ػذدی ثِ سلبٍیش ثَد‬ ‫ هی سَاًیذ هشَى افقی ٍ ثب اػشفبدُ اص سبثغ‬imagestring() ‫ ثب اػشفبدُ اص سبثغ‬.‫سا هفیذ سش ًیض کشد‬ ‫ ّش دٍ سبثغ آسگَهبى ّبی صیش سا‬.‫ هشَى ػوَدی سا دس سلبٍیش خَد ثٌَیؼیذ‬imagestringup() : ‫ًیبص داسًذ‬ Canvas ID Font ID X Coordinates Y Coordinates Text string Color ID

-

‫ فًَز سَکبس ثیشی سا هـخق‬5 ‫ هی ثبؿذ کِ یکی اص‬5-1 ‫ یک هقذاس كحیح دس ثبصُ ی‬Font ID .‫هی کٌذ‬ ِ‫ کذ صیش سَػؼِ یبفش‬.‫اػکشیذز صیش ًحَُ ی اػشفبدُ اص ایي سَاثغ سا دس ػول ثِ ؿوب ًـبى هی دّذ‬ .‫ی هثبل قجل اػز‬ <?php header("Content-Type: image/jpeg"); # Set the dimensions of the canvas $cw = 300; $ch = 300; # Define chart-drawing function function drawChart($c, $cx, $cy, $v1, $v2, $v3,$c0, $c1, $c2, $c3) { ImageFilledRectangle($c, $cx, $cy - $v1,$cx + 10, $cy, $c1); ImageRectangle($c, $cx, $cy - $v1,$cx + 10, $cy, $c0); ImageFilledRectangle($c, $cx + 5, $cy - $v2,$cx + 15, $cy, $c2); ImageRectangle($c, $cx + 5, $cy - $v2,$cx + 15, $cy, $c0); ImageFilledRectangle($c, $cx + 10, $cy - $v3,$cx + 20, $cy, $c3); ImageRectangle($c, $cx + 10, $cy - $v3,$cx + 20, $cy, $c0); } # Map displacement values $mdx = 0; $mdy = 0;

masoudmanson | Php & GD www.ParsBook.org


# Make array of map points $usa[0] = 30 + $mdx; $usa[1] = 50 + $mdy; $usa[2] = 15 + $mdx; $usa[3] = 90 + $mdy; $usa[4] = 40 + $mdx; $usa[5] = 130 + $mdy; $usa[6] = 85 + $mdx; $usa[7] = 135 + $mdy; $usa[8] = 120 + $mdx; $usa[9] = 170 + $mdy; $usa[10] = 130 + $mdx; $usa[11] = 140 + $mdy; $usa[12] = 180 + $mdx; $usa[13] = 125 + $mdy; $usa[14] = 200 + $mdx; $usa[15] = 160 + $mdy; $usa[16] = 215 + $mdx; $usa[17] = 165 + $mdy; $usa[18] = 195 + $mdx; $usa[19] = 105 + $mdy; $usa[20] = 210 + $mdx; $usa[21] = 70 + $mdy; $usa[22] = 200 + $mdx; $usa[23] = 60 + $mdy; $usa[24] = 215 + $mdx; $usa[25] = 15 + $mdy; $usa[26] = 195 + $mdx; $usa[27] = 10 + $mdy; $usa[28] = 165 + $mdx; $usa[29] = 50 + $mdy; $usa[30] = 105 + $mdx; $usa[31] = 55 + $mdy; $usa[32] = 95 + $mdx; $usa[33] = 45 + $mdy; # Create canvas $c = ImageCreate($cw, $ch); # Generate $cols[0] = $cols[1] = $cols[2] = $cols[3] = $cols[4] = $cols[5] =

color palette ImageColorAllocate($c, ImageColorAllocate($c, ImageColorAllocate($c, ImageColorAllocate($c, ImageColorAllocate($c, ImageColorAllocate($c,

0, 0, 0); 255, 255, 255); 255, 0, 0); 0, 255, 0); 0, 0, 255); 255, 255, 0);

# Create background ImageFilledRectangle($c, 0, 0, $cw - 1, $ch - 1, $cols[1]); # Draw map ImageFilledPolygon($c, $usa, 17, $cols[3]); # Draw map outline ImagePolygon($c, $usa, 17, $cols[0]); drawChart($c, 190, 100, 80, 70, 55, $cols[0], $cols[4], $cols[2], $cols[5]); drawChart($c, 100, 140, 60, 65, 40, $cols[0], $cols[4], $cols[2], $cols[5]); drawChart($c, 40, 100, 40, 90, 55, $cols[0], $cols[4], $cols[2], $cols[5]); # GNOME ImageFilledRectangle($c, 60, 203, 70, 210, $cols[2]); ImageRectangle($c, 60, 203, 70, 210, $cols[0]); ImageString($c, 2, 75, 200, "GNOME", $cols[0]); # KDE ImageFilledRectangle($c, 120, 203, 130, 210, $cols[4]); ImageRectangle($c, 120, 203, 130, 210, $cols[0]); ImageString($c, 2, 135, 200, "KDE", $cols[0]); # GNUStep ImageFilledRectangle($c, 165, 203, 175, 210, $cols[5]);

masoudmanson | Php & GD www.ParsBook.org


‫;)]‪ImageRectangle($c, 165, 203, 175, 210, $cols[0‬‬ ‫;)]‪ImageString($c, 2, 180, 200, "GNUStep", $cols[0‬‬ ‫‪# Copyright info‬‬ ‫;)]‪ImageStringUp($c, 1, 0, 145, "Copyright 2011 masoudmanson", $cols[0‬‬ ‫‪# Generate image‬‬ ‫;)‪ImageJPEG($c‬‬ ‫>?‬

‫ثؼذ اص اجشای اػکشیذز ثبال ؿوب سلَیش صیش سا خَاّیذ داؿز‪:‬‬

‫فًَز ّبی سَکبس ثیشی )‪ّ (build-in bitmap fonts‬ویـِ دس دػششع ّؼشٌذ‪ ،‬اهب اگش ؿوب‬ ‫ثخَاّیذ اص فًَز ّبی دیگشی اػشفبدُ کٌیذ‪ ،‬ثبیذ کشبثخبًِ ی ‪ freetype2‬سا ًلت کشدُ ٍ اص سبثغ‬ ‫)(‪ imagefttext‬ثشای ًوبیؾ هشي ّبیشبى اػشفبدُ کٌیذ‪ .‬ؿوب ّوچٌیي هی سَاًیذ اص ‪Post‬‬ ‫‪ً Script Type 1 fonts‬یض اػشفبدُ کٌیذ کِ دس ایي كَسر ثِ کشبثخبًِ ی ‪ً t1lib‬یبص داسیذ ٍ‬ ‫دغ اص ًلت آى هی سَاًیذ اص سَاثغ )(‪ imagepstext() ٍ imagepsloadfont‬اػشفبدُ کٌیذ‪.‬‬ ‫دس ّش دٍ هَسد ثبال‪ ،‬ثبیذ ‪ gd ٍ php‬ایي کشبثخبًِ ّب سا ػبدَسر کٌ​ٌذ‪ .‬سَجِ کٌیذ کِ ‪Type 1‬‬ ‫‪ fonts‬صهبى ثیـششی سا ًؼجز ثِ ‪ Trur Type fonts‬ثشای سًذس ؿذى ًیبص داسًذ‪ ٍ ،‬ایي اهذ‬ ‫هوکي اػز ثبػث ‪ timeout‬ؿذى اػکشیذز ؿوب گشدد‪.‬‬

‫‪masoudmanson | Php & GD‬‬ ‫‪www.ParsBook.org‬‬


‫بخص پىجم ‪ -‬قبل از ایىکٍ ضاَکارتان را بٍ تماضاگر بفرستیذ‬ ‫تصمیم بگیریذ چٍ وًع تصًیری می خًاَیذ ایجاد کىیذ؟‬ ‫سب کٌَى ؿوب سلبٍیش ‪ jpeg‬سا ایجبد کشدُ ایذ‪ ،‬اهب ؿبیذ ؿوب ثخَاّیذ سلبٍیش ‪ PNG‬یب ‪WBMP‬‬ ‫(دس ٍػبئلی کِ ‪ WAP-enabeld‬ثبؿٌذ کبسثشد داسد‪ ،‬هثل هَثبیل ّب) سَلیذ کٌیذ‪ .‬ثشای ایي کبس‬ ‫سبثغ )(‪ imagejpeg‬سا ثب )(‪ imagepng‬یب )(‪ imagewbmp‬ػَم کٌیذ‪ .‬اگش ایي کبس سا کشدیذ‬ ‫فشاهَؽ ًکٌیذ کِ سغییشار صیش سا ًیض اػوبل کٌیذ‪ ،‬یؼٌی ‪:‬‬ ‫;)”‪header (“Content-Type: image/jpeg‬‬

‫سا ثب‬ ‫;)”‪header (“Content-Type: image/png‬‬

‫یب‬ ‫;)”‪header (“Content-Type: image/vnd.wap.wbmp‬‬

‫جبثجب کٌیذ‪.‬‬

‫بخص ضطم ‪ -‬تعبیٍ کردن در بیه کذ َای ‪html‬‬ ‫سب کٌَى ؿوب ثشای اػشفبدُ اص اػکشیذز ّبی ایي آهَصؽ آًْب سا ثِ كَسر هؼشقین فشاخَاًی هی‬ ‫کشدیذ‪ ،‬دس حبلی کِ ایي هٌبػت سشیي سٍؽ ثشای دػششػی ثِ سلبٍیش سَلیذی سَػط اػکشیذز ّب‬ ‫ًیؼز‪ .‬اگش ؿوب ثخَاّیذ اص اػکشیذششبى دس یک كفحِ ی ‪ html‬اػشفبدُ کٌیذ‪ ،‬چِ؟‬ ‫ایي کبس ثؼیبس ساحز اػز‪ .‬سوبم کبسی کِ ؿوب ثبیذ ثکٌیذ قشاس دادى ‪ URL‬اػکشیذشی کِ سلبٍیش سا‬ ‫هی ػبصد دس آسگَهبى ‪ src‬سگ ّب ی >‪ <img‬هی ثبؿذ‪:‬‬

‫‪masoudmanson | Php & GD‬‬ ‫‪www.ParsBook.org‬‬


<html> <head> <title>GD Tutorial</title> </head> <body> <img src="clock.php"> <img src="chart.php"> </body> </html>

: ‫ؿکل صیش خشٍجی کذ ثبال هی ثبؿذ‬

masoudmanson | Php & GD www.ParsBook.org


About the author Jacek Artymiak works as a freelance consultant, developer, and writer. Since 1991 he's been developing software for many commercial and free variants of the UNIX and BSD operating systems (AIX, HP-UX, IRIX, Solaris, Linux, FreeBSD, NetBSD, OpenBSD, and others), as well as for the MS-DOS, Microsoft Windows, Mac OS, and Mac OS X operating systems. Jacek specializes in business and financial application development, Web design, network security, computer graphics, animation, and multimedia. He's a prolific writer on technology subjects and the coauthor of Install, Configure, and CustomizeSlackware Linux (Prima Tech, 2000) and StarOffice for Linux Bible (IDG Books, 2000). Find many of Jacek's software projects at SourceForge.net.

About the interpreter Since 2009 I’m studing Information Technology in Institute for Advanced Studies in Basic Sciences (IASBS). E-mail : masoudmanson@gmail.com E-mail (2) : m.amjadi@iasbs.ac.ir Cellular phone : 09148401824 Blog : iasbs-it.mihanblog.com Masoud Amjadi

masoudmanson | Php & GD www.ParsBook.org


References 1- Installation manuals for gd 1.8.x (http://www.boutell.com/gd/manual1.8.4.html) and gd2.x (http://www.boutell.com/gd/manual2.0.1.html). 2- Installation manual for Apache (http://httpd.apache.org/docs/install.html). 3- Additional information for developers using PHP in Programming PHP , Rasmus Lerdorf and Kevin Tatroe, O'Reilly and Associates, 2002 (http://www.oreilly.com/catalog/progphp/). 4- For programming Web applications with PHP, see Web Database Applications with PHP and MySQL , Hugh E. Williams and David Lane, O'Reilly and Associates, 2002 (http://www.oreilly.com/catalog/webdbapps/). 5- For a general discussion of information visualization, read the Edward Tufte trilogy at Graphics Press: The Visual Display of Quantitative Information, 2001; Envisioning Information, 1990; and Visual Explanations: Images and Quantities, Evidence and Narrative, 1997 (http://www.edwardtufte.com/1028032219/tufte/). 6- Apple offers instructions on adding PHP for Mac OS X (http://developer.apple.com/internet/macosx/php.html).

masoudmanson | Php & GD www.ParsBook.org


Turn static files into dynamic content formats.

Create a flipbook
Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.