Yo people. This is my Project 5. In this project, we got comfortable using lists and using functions that can process lists.
To do this, we made a function that could take in a list containing all of the specified information needed to place the image in to a collage. Inputting the list in the function would allow the function to interpret the information inside of the list to make the collage the way the list specified. I even dabbled with adding command line inputs to the list. The lists within the list we created contained information on the image, the position of the image inside the total collage, the filter that was applied to each individual picture, the transparency of the picture, and whether or not to remove the blue pixels behind the image so that the picture we took of ourselves could come through without the background.
The only really cool feature about the list was how it dealt with creating a Pixmap of the .ppm input in the first entry. To do so, we held the last entry in the list open to later be filled with the pixmap. We did this like this (I'm also including the labels of other entries on the list):
Looping this information through each list made it apply to all .ppm entries we wanted in there.
My first collage looked like this:
Pretty weird huh.
I then learned how to randomize the effect applied to the picture. Instead of doing if/elif statements involving strings, I made a filter = a number value. That way, I could generate a random integer for the effect input in the list and that random integer would correspond to a filter operation.
I then made a cover photo that used 6 command line inputs. It pretty much just lined them up next to each other.
Yeah that would probably never be my actual cover photo.
For an extension, I made the pixmaps arrange themselves in a diamond formation. I did this playing with the x and y offsets. (It takes 4 entries from the command line).
These are the extensions I performed:
1) I made a new image effect (negate)
2) I made an image putting pixmaps in a diamond and took them from the command line.
3) Perhaps it's not an extra option, but I did randomize the effect used and the decision to use putPixmap/putPixmapNoBlue for some collage lists
4 - ish) I tried to parse and read a text file. It didn't work out too good.
Got help from Funk, CJ, Lanya, Bilal, Hieu, and Dupes.