1 Media Software Design DIG 3134 Fall 2012 Lecture 15: Graphics J. Michael Moshell University of Central Florida Original image* by Moshell et al.
-2 - Excerpt from DA Text PHP Graphics The Coordinate System (for our example) x 800 y 600
-3 - PHP Graphics Motivation: the RSL Pickup Graph
-4 - Excerpt from DA Text PHP Graphics The Coordinate System (for our example) x 0800 y yup = 600-y (so y=600 – yup)
-5 - Excerpt from DA Text PHP Graphics: The GD Library Basic example: $Imagewidth=800;$Imageheight=600; $image=imagecreate($Imagewidth, $Imageheight); $colorWhite=imagecolorallocate($image, 255, 255, 255); $colorGreen=imagecolorallocate($image, 0, 200, 0); // x1 y1 x2 y2 imageline($image, 300, 200, 300,550, $coloGreen); imagepng($image,'graphout.png'); imagedestroy($image); print ' ';
-6 - Excerpt from DA Text PHP Graphics: The GD Library Basic example: $Imagewidth=800;$Imageheight=600; $image=imagecreate($Imagewidth, $Imageheight); $colorWhite=imagecolorallocate($image, 255, 255, 255); $colorGreen=imagecolorallocate($image, 0, 200, 0); // x1 y1 x2 y2 imageline($image, 300, 200, 300,550, $coloGreen); imagepng($image,'graphout.png'); imagedestroy($image); print ' '; Do this to force the browser not to cache the png file. If it is cached, you won't see changes... frustrating.
-7 - Excerpt from DA Text PHP Graphics: The GD Library Basic example: $Imagewidth=800;$Imageheight=600; $image=imagecreate($Imagewidth, $Imageheight); $colorWhite=imagecolorallocate($image, 255, 255, 255); $colorGreen=imagecolorallocate($image, 0, 200, 0); // x1 y1 x2 y2 imageline($image, 300, 200, 300,550, $coloGreen); imagepng($image,'graphout.png'); imagedestroy($image); print ' '; Do this to force the browser not to cache the png file. If it is cached, you won't see changes... frustrating. NOTE: This sometimes sorta works
-8 - markbeam.com Project 4: Cowpies Examine the cowpie1 prototype. Behavior Code Examine the Requirements for Project 4
-9 - Project 4: Cowpies Requirements BEGIN with a database task: ** remember previous moves and replay them. So we will BEGIN (next week) with a tutorial database example called "address book" to build up your database skills, and also give you some code to steal / merge with cowpie1.php. Let's look at one more graphical issue. Can we write our.png DIRECTLY to browser?
-10 - Excerpt from DA Text PHP Graphics: The GD Library Basic example: $Imagewidth=800;$Imageheight=600; $image=imagecreate($Imagewidth, $Imageheight); $colorWhite=imagecolorallocate($image, 255, 255, 255); $colorGreen=imagecolorallocate($image, 0, 200, 0); // x1 y1 x2 y2 imageline($image, 300, 200, 300,550, $coloGreen); imagepng($image,'graphout.png'); imagedestroy($image); print ' '; Can we write the image DIRECTLY to the browser, instead of into a file? Docs say we can, so we try it.
-11 - Excerpt from DA Text PHP Graphics: The GD Library Basic example: $Imagewidth=800;$Imageheight=600; $image=imagecreate($Imagewidth, $Imageheight); $colorWhite=imagecolorallocate($image, 255, 255, 255); $colorGreen=imagecolorallocate($image, 0, 200, 0); // x1 y1 x2 y2 imageline($image, 300, 200, 300,550, $coloGreen); imagepng($image); imagedestroy($image); print ' '; Can we write the image DIRECTLY to the browser, instead of into a file? Docs say we can, so we try it.
-12 - GD direct to screen: ?? What's this? Any ideas?
-13 - GD direct to screen: ?? What's this? Any ideas? View Source
-14 - GD direct to screen: ?? Once you've announced to the browser that HTML is coming, it expects HTML. So what if we tried a different header?
-15 - So what if we tried a different header? PHP has a header function. We modify cowpie1.php: function htmlheader() { print " "; } //main program $angle=$_POST['angle'];$velocity=$_POST['velocity']; if (!$angle) htmlheader();//need HTML first time for form else header('Content-type: image/png');
-16 - Result: yes, it "works"... but now it's not an HTML form any more, so there are no inputs (controls). It's not interactive. So... we're better off embedding png in html.
-17 - FOR THURSDAY: The usual shoot-out model: GET your Group's BEST GAME ready to play! If you need help with Project 3, come SEE ME.