Note 18.10.1.
Remember that it can take a bit of time to process all the pixels in a picture! Check for errors below the code if it is taking a long time, but if you don't see any errors just wait.
# Import everything from the Image class
from image import *
# Add a closing parentheses
img = Image("gal2.jpg")
pixelList = img.getPixels()
for p in pixelList:
# Add 0 inside setRed() parentheses to set all red pixels to 0
p.setRed(0)
#Add a p inside updatePixel() parentheses
img.updatePixel(p)
win = ImageWin(img.getWidth(),img.getHeight())
img.draw(win)
from image import *
img = Image("kitten.jpg")
pixelList = img.getPixels()
for p in pixelList:
# Red tint
# Set red pixels to 255, not 0
p.setRed(255)
img.updatePixel(p)
win = ImageWin(img.getWidth(),img.getHeight())
img.draw(win)
from image import *
img = Image("gal2.jpg")
pixels = img.getPixels()
for p in pixels:
# Need to indent inside a for loop
# Indent every line of code that modifies pixel values.
r = p.getRed()
g = p.getGreen()
b = p.getBlue()
p.setRed(g)
p.setGreen(b)
p.setBlue(r)
img.updatePixel(p)
win = ImageWin(img.getWidth(),img.getHeight())
img.draw(win)
from image import *
img = Image("kitten.jpg")
pixels = img.getPixels()
# pixels, not pixel, to match variable name
for p in pixels:
# getRed() has a capital R
r = p.getRed()
b = p.getGreen()
g = p.getBlue()
p.setRed(g)
p.setGreen(b)
# The function is setBlue, instead of set.Blue
p.setBlue(r)
# updatePixel should have capitalized P
img.updatePixel(p)
win = ImageWin(img.getWidth(),img.getHeight())
# img is lowercased
img.draw(win)
from image import *
img = Image("gal2.jpg")
pixels = img.getPixels();
# Add loop condition
for p in pixels:
# Get current red value
r = p.getRed()
p.setRed(r * 0.5);
# Update image with new pixels
img.updatePixel(p)
win = ImageWin(img.getWidth(),img.getHeight())
img.draw(win)
from image import *
img = Image("swan.jpg")
pixels = img.getPixels()
# Loop through each pixel in pixels
for p in pixels:
# Add getBlue(), getGreen() and getRed()
b = p.getBlue()
g = p.getGreen()
r = p.getRed()
# Set blue to 1/8 of green and 1/8 of red
p.setBlue((g / 8) + (r / 8))
img.updatePixel(p)
win = ImageWin(img.getWidth(),img.getHeight())
img.draw(win)
from image import *
img = Image("gal2.jpg")
pixels = img.getPixels();
for p in pixels:
# Need to indent inside a for loop
# Indent every line of code that modifies pixel values.
r = p.getRed()
p.setRed(r * 1.5);
img.updatePixel(p)
win = ImageWin(img.getWidth(),img.getHeight())
img.draw(win)
from image import *
img = Image("motorcycle.jpg")
pixels = img.getPixels()
for p in pixels:
# Removed getRed(), getGreen() and getBlue()
#We are setting the pixel values to 0 regardless of current value
p.setRed(0)
p.setGreen(0)
p.setBlue(0)
img.updatePixel(p)
win = ImageWin(img.getWidth(),img.getHeight())
img.draw(win)
from image import *
img = Image("gal2.jpg")
pixels = img.getPixels();
for p in pixels:
# You need to first get current pixel values and theen modify to new values
g = p.getGreen()
b = p.getBlue()
p.setGreen(g * 0.75)
p.setBlue(b * 0.75)
img.updatePixel(p)
win = ImageWin(img.getWidth(),img.getHeight())
img.draw(win)
# STEP 1: USE THE IMAGE LIBRARY
from image import *
# STEP 2: PICK THE IMAGE
img = Image("baby.jpg")
# STEP 3: LOOP THROUGH THE PIXELS
pixels = img.getPixels()
for p in pixels:
# STEP 4: GET THE DATA
r = p.getRed()
b = p.getBlue()
g = p.getGreen()
# STEP 5: MODIFY THE COLOR
p.setRed(r/2)
p.setGreen(g/2)
p.setBlue(b/2)
# STEP 6: UPDATE THE IMAGE
img.updatePixel(p)
# STEP 7: SHOW THE RESULT
win = ImageWin(img.getWidth(),img.getHeight())
img.draw(win)
from image import *
img = Image("gal2.jpg")
# Since we need first half, only consider range for first half pixel values
# Range takes integer parameters, so need to convert float type to int
for x in range(int(img.getWidth()/2)):
for y in range(img.getHeight()):
p = img.getPixel(x, y)
p.setRed(0)
img.updatePixel(p)
win = ImageWin(img.getWidth(),img.getHeight())
img.draw(win)
from image import *
img = Image("swan.jpg")
# Range should be the left 1/2 of the image
for x in range(int(img.getWidth()/2)):
#Range should be bottom 1/2 of the image
for y in range(int(img.getHeight()/2),int(img.getHeight())):
p = img.getPixel(x, y)
p.setRed(0)
p.setGreen(0)
img.updatePixel(p)
win = ImageWin(img.getWidth(),img.getHeight())
img.draw(win)
from image import *
img = Image("gal2.jpg")
# Since we need first half, only consider range for first half pixel values
# Range takes integer parameters, so need to convert float type to int
for x in range(int(img.getWidth()/2), int(img.getWidth())):
for y in range(int(img.getHeight()/2), int(img.getHeight())):
p = img.getPixel(x, y)
p.setRed(0)
img.updatePixel(p)
win = ImageWin(img.getWidth(),img.getHeight())
img.draw(win)
from image import *
# CREATE AN IMAGE FROM A FILE
img = Image("guy1.jpg")
# LOOP THROUGH THE PIXELS
for x in range(0, int(img.getWidth()), 5):
for y in range(0, img.getHeight(), 5):
# GET THE DATA
p = img.getPixel(x, y)
# SET THE PIXEL
p.setGreen(0)
p.setBlue(0)
# UPDATE THE IMAGE
img.updatePixel(p)
# SHOW THE RESULT
win = ImageWin(img.getWidth(),img.getHeight())
img.draw(win)
from image import *
img = Image("gal2.jpg")
pixels = img.getPixels();
for p in pixels:
# Set Red and Blue values to 0
p.setRed(0)
p.setBlue(0)
img.updatePixel(p)
win = ImageWin(img.getWidth(),img.getHeight())
img.draw(win)
gal2.jpg
from image import *
class MyImage(Image):
def __init__(self, file):
super().__init__(file)
def negate(self):
for x in range(self.getWidth()):
for y in range(int(self.getHeight() / 3)):
p = self.getPixel(x,y)
r = p.getRed()
b = p.getBlue()
g = p.getGreen()
newPixel = Pixel(255 - r, 255 - b, 255 - g)
self.setPixel(x, y, newPixel)
def removeBlue(self):
for x in range(self.getWidth()):
for y in range(int(self.getWidth() / 3), int((self.getWidth() / 3)*2)):
p = self.getPixel(x,y)
p.setBlue(0)
self.updatePixel(p)
def reduceRed(self):
for x in range(self.getWidth()):
for y in range(int((self.getWidth() / 3)*2), self.getHeight()):
p = self.getPixel(x,y)
r = p.getRed()
p.setRed(r/2)
self.updatePixel(p)
def main():
# CREATE AN IMAGE FROM A FILE
img = MyImage("gal2.jpg")
img.negate()
img.removeBlue()
img.reduceRed()
# SHOW THE RESULT
win = ImageWin(img.getWidth(),img.getHeight())
img.draw(win)
main()