Computer Science 101 Introduction to Programming with Pictures.
-
Upload
cassandra-gibbs -
Category
Documents
-
view
226 -
download
4
Transcript of Computer Science 101 Introduction to Programming with Pictures.
setMediaPath
Invoking this function allows the user to choose a folder that will be the “default” location where searches for media files will start. This just makes it easier to pick files, etc.
JES Picture Layout With JES, pictures are laid out in an x,y
coordinate system starting in upper left corner, with x increasing to the right and y increasing downward.
Working with Pixels – get values
getPixel(picture,x,y) – obtains the pixel at the given coordinates in the given picture.
getColor(pixel) – obtains the color object of the pixel.
getRed(pixel) – obtains the red value of the pixel, etc.
getX(pixel) – obtains the X coordinate of the pixel, etc.
Working with Pixels – changing values
setColor(pixel, color) – changes the pixel’s color to be the given color.
setRed(pixel, redAmt) – changes the pixel’s red value to the given amount, etc.
pickAColor() – lets the user choose a color with slide bars, etc.
List of Pixels getPixels(myPicture) - returns a list of all
the pixels from the picture. The pixels will be in the list in row order –
first row followed by second row, etc.
Note that the pixel in position (x,y) has list index equal to
width * y + x
For example, the pixel at (3,2) has index 2*4 + 3
Changing Individual Pixels
1. Get the pixel into a variable:myPixel = getPixel(myPicture,10,6)
2. If the change does not depend on current values in the pixel, make change:
setRed(myPixel, 128)
3. If change depends on current values, get the needed values first:
myRed = getRed(myPixel)setRed(myPixel, myRed * 0.5)
Processing all the Pixels
The general strategy is to use a for-loop on the list of pixels:
thePixels = getPixels(thePicture)for aPixel in thePixels : <process aPixel>
orfor aPixel in getPixels(thePicture) : <process aPixel>
Choosing Pixels to Process
Sometimes we decide which pixels to process or which process to apply depending on conditions on the pixels
thePixels = getPixels(thePicture)for aPixel in thePixels: if <condition about aPixel>
<process aPixel>
Working with Pixels within a Region
Often we can restrict our processing to pixels within some rectangular region of the picture. This can be much, much more efficient than iterating over all of the multitude of pixels.
for x in range(a,b) : for y in range(c,d) :
<process pixel at x,y>