CSC220 Lab 2 2010
Setup your account
- Sharon's login modification: edit the file .login in your 220a-xx account, and add this line at the end of it:
if ( -f /bin/bash ) exec /bin/bash --login
- edit the file .bash_profile in your 220a-xx account and add the following lines at the end of it:
export SHELL=/bin/bash unalias rm unalias cp unalias mv
- Logout, and log back in. You should automatically be in bash, and the rm, cp, and mv commands should not be aliased (more about this in class).
Creating Images
Important Note: this lab should be run in Linux mode with X11 support. If you are doing this lab in FH342, make sure the machine you are using booted with Fedora, and you should be all set. If you are using a Linux box or a Mac in another location, make sure you ssh to beowulf or grendel using the -Y option:
ssh -Y 220a-xx@beowulf.csc.smith.edu
The -Y option allows commands that generate graphics to open windows on your Linux box.
- This part of the lab uses a very nice and powerful program that is often bundled in the various Linux distribution (Fedora, Ubuntu, Suse, etc): ImageMagick. It is a collection of different programs that allow for very clever and powerful image manipulations.
Part 1
- There are 3 images in the 220a public_html folder, called 220a.jpg, 220b.jpg, and 220c.jpg. You can see them by opening this URL: http://cs.smith.edu/~220a/
- use wget (see Lab 1) to retrieve all three images into your account. Use a for-loop! Something like this is a good start:
for i in a b c ; do echo $i echo 220${i} done
- verify that you got the images by displaying them with the display command (also part of imagemagick). Example:
display 220a.jpg
- Can you tell what these three pictures have in common?
- You are going to use the Overlay feature of ImageMagick, covered here: http://www.imagemagick.org/Usage/annotating/#overlay
- Overlay the 220 road sign image on top of the car:
composite -geometry +10+10 220a.jpg 220c.jpg 220ac.jpg
- Display 220ac.jpg to see the result. The +10+10 part of the command specify that the top-left corner of the first image (road sign) should be 10 pixels left and 10 pixels down from the second image (car). The result is a new file called 220ac.jpg.
- Using the same approach overlay image 220b.jpg on 220ac.jpg, and offset it by 850 pixels left, and 10 down (or pick your own coordinates; this is not important for this lab). Call the resulting file 220abc.jpg.
- Add the caption "CSC 220" (or whatever text you want) to the bottom of the resulting image as follows:
convert 220abc.jpg -pointsize 20 \ -draw "gravity south fill white text 0,10 'CSC 220' " \ 220abcfinal.jpg
- Check that you can see the white text at the bottom of the 220abcfinal.jpg image.
- Store the resulting file in your public_html directory, and make it readable by all:
cp 220abcfinal.jpg ~/public_html chmod a+r public_html/*
- Verify that you can access your picture on the Web: http://cs.smith.edu/~220a-xx/220abcfinal.jpg (make sure you replace xx by your 2-letter Id!)
Part 2
- Create a script file that will do all the work that you did by hand in the previous section.
- Call your script collage.sh (for example), and make sure its first line is
#! /bin/bash
- Also make sure you make your script executable when you're done:
chmod +x collage.sh
- remove the 220abcfinal.jpg file from your public_html directory
rm ~/public_html/220abc*.jpg
- verify that if you reload your browser, the image is not available any longer.
- Run your script.
./collage.sh
- Reload your browser. Does the image reappear? If yes, congrats! If not, figure out why!