CSC220 Lab 2 2010

From dftwiki3
Revision as of 11:29, 14 September 2010 by Thiebaut (talk | contribs) (Creating Images)
Jump to: navigation, search

Page under construction!
UnderConstruction.jpg

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 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?
  • 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/*

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!