COMP1400 – Programming for Designers

Class announcements for Programming for Designers

COMP1400 – Programming for Designers random header image

Tutorial Wk 7 – ASCII Art

Posted by on August 22nd, 2012 · Lab

In this tutorial we will be working with 2D arrays to do some image manipulation.

Download the BlueJ project ASCIIArt.zip. Inside you will find a class that contains the method readImage(String url). This method takes the URL for any image on the web and converts it into a 2D array of integers. Each entry in the 2D array represents the brightness of one pixel. The values range from zero (black) to 5 (white). Entries are arranged in width by height order so an array like:

{{0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 5, 0, 0, 0, 0, 0, 0, 0}
{0, 5, 5, 5, 0, 0, 0, 0, 0},
{0, 5, 3, 3, 5, 5, 0, 0, 0},
{0, 5, 3, 3, 3, 3, 5, 5, 0},
{0, 5, 3, 3, 5, 5, 0, 0, 0},
{0, 5, 5, 5, 0, 0, 0, 0, 0},
{0, 5, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0}}

represents a grey triangle (the ‘3’ pixels) with a white border (the bright ‘5’ pixels) pointing to the right on a black background (the ‘0’ pixels).

Your tasks:

  1. Write a method to draw an image on the console using ASCII art. That is, each pixel of the image is drawn as a character according to the following table:
    Brightness Character
    0 'X'
    1 '8'
    2 'o'
    3 ':'
    4 '.'
    5 ' '

    So the triangle above would be rendered as:

    XXXXXXXXX
    X XXXXXXX
    X   XXXXX
    X ::  XXX
    X ::::  X
    X ::  XXX
    X   XXXXX
    X XXXXXXX
    XXXXXXXXX
    


  2. Write a method to invert an image, so that bright pixels are converted to dark and vice versa. It should input an image and return an inverted copy.
  3. Write a method to flip an image horizontally. It should input an image and return a flipped copy.
  4. Challenge: Write a method to rotate an image clockwise. It should input an image and return a rotated copy.

No Comments so far ↓

There are no comments yet...Kick things off by filling out the form below.

You must log in to post a comment.