Class SimplePicture

java.lang.Object
SimplePicture
All Implemented Interfaces:
DigitalPicture
Direct Known Subclasses:
Picture

public class SimplePicture extends Object implements DigitalPicture
A class that represents a simple picture. A simple picture may have an associated file name and a title. A simple picture has pixels, width, and height. A simple picture uses a BufferedImage to hold the pixels. You can show a simple picture in a PictureFrame (a JFrame). Copyright Georgia Institute of Technology 2004
  • Constructor Summary

    Constructors
    Constructor
    Description
    A Constructor that takes no arguments.
    SimplePicture(int width, int height)
    A Constructor that takes a file name and uses the file to create a picture
    SimplePicture(int width, int height, Color theColor)
    A constructor that takes the width and height desired for a picture and creates a buffered image of that size.
    A constructor that takes a buffered image
    A Constructor that takes a picture to copy information from
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    addMessage(String message, int xPos, int yPos)
    Method to write the contents of the picture to a file with the passed name without throwing errors
    void
    copyPicture(SimplePicture sourcePicture)
    Method that will copy all of the passed source picture into the current picture object
    Method to get a Graphics2D object for this picture which can be used to do 2D drawing on the picture
    void
    drawString(String text, int xPos, int yPos)
    Method to draw a string at the given location on the picture
    int
    getBasicPixel(int x, int y)
    Method to return the pixel value as an int for the given x and y location
    Method to get the buffered image
    Method to get the extension for this picture
    Method to get the file name associated with the picture
    Method to get a graphics object for this picture to use to draw on
    int
    Method to get the height of the picture in pixels
    Method to get an image from the picture
    Method to get the picture frame for the picture
    Method to create a new picture of the passed height.
    Method to create a new picture of the passed width.
    getPixel(int x, int y)
    Method to get a pixel object for the given x and y location
    Method to get a one-dimensional array of Pixels for this simple picture
    Method to get the title of the picture
    Method to get the coordinates of the enclosing rectangle after this transformation is applied to the current picture
    Method to get the coordinates of the enclosing rectangle after this transformation is applied to the current picture
    int
    Method to get the width of the picture in pixels
    void
    Method to hide the picture
    void
    load(Image image)
    Method to load the buffered image with the passed image
    void
    Method to open a picture explorer on a copy of this simple picture
    scale(double xFactor, double yFactor)
    Method to create a new picture by scaling the current picture by the given x and y factors
    void
    Method to set the color in the picture to the passed color
    void
    setBasicPixel(int x, int y, int rgb)
    Method to set the value of a pixel in the picture from an int
    void
    Method to set the file name
    void
    Method to set the picture frame for this picture
    void
    Method to set the title for the picture
    void
    setVisible(boolean flag)
    Method to make this picture visible or not
    void
    Method to show the picture in a picture frame
    Method to return a string with information about this picture

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
  • Constructor Details

    • SimplePicture

      public SimplePicture()
      A Constructor that takes no arguments. All fields will be null. A no-argument constructor must be given in order for a class to be able to be subclassed. By default all subclasses will implicitly call this in their parent's no argument constructor unless a different call to super() is explicitly made as the first line of code in a constructor.
    • SimplePicture

      public SimplePicture(int width, int height)
      A Constructor that takes a file name and uses the file to create a picture
      Parameters:
      fileName - the file name to use in creating the picture
    • SimplePicture

      public SimplePicture(int width, int height, Color theColor)
      A constructor that takes the width and height desired for a picture and creates a buffered image of that size. It also takes the color to use for the background of the picture.
      Parameters:
      width - the desired width
      height - the desired height
      theColor - the background color for the picture
    • SimplePicture

      public SimplePicture(SimplePicture copyPicture)
      A Constructor that takes a picture to copy information from
      Parameters:
      copyPicture - the picture to copy from
    • SimplePicture

      public SimplePicture(BufferedImage image)
      A constructor that takes a buffered image
      Parameters:
      image - the buffered image
  • Method Details

    • getExtension

      public String getExtension()
      Method to get the extension for this picture
      Returns:
      the extendsion (jpg or bmp)
    • copyPicture

      public void copyPicture(SimplePicture sourcePicture)
      Method that will copy all of the passed source picture into the current picture object
      Parameters:
      sourcePicture - the picture object to copy
    • setAllPixelsToAColor

      public void setAllPixelsToAColor(Color color)
      Method to set the color in the picture to the passed color
      Parameters:
      color - the color to set to
    • getBufferedImage

      public BufferedImage getBufferedImage()
      Method to get the buffered image
      Specified by:
      getBufferedImage in interface DigitalPicture
      Returns:
      the buffered image
    • getGraphics

      public Graphics getGraphics()
      Method to get a graphics object for this picture to use to draw on
      Returns:
      a graphics object to use for drawing
    • createGraphics

      public Graphics2D createGraphics()
      Method to get a Graphics2D object for this picture which can be used to do 2D drawing on the picture
    • getFileName

      public String getFileName()
      Method to get the file name associated with the picture
      Specified by:
      getFileName in interface DigitalPicture
      Returns:
      the file name associated with the picture
    • setFileName

      public void setFileName(String name)
      Method to set the file name
      Parameters:
      name - the full pathname of the file
    • getTitle

      public String getTitle()
      Method to get the title of the picture
      Specified by:
      getTitle in interface DigitalPicture
      Returns:
      the title of the picture
    • setTitle

      public void setTitle(String title)
      Method to set the title for the picture
      Specified by:
      setTitle in interface DigitalPicture
      Parameters:
      title - the title to use for the picture
    • getWidth

      public int getWidth()
      Method to get the width of the picture in pixels
      Specified by:
      getWidth in interface DigitalPicture
      Returns:
      the width of the picture in pixels
    • getHeight

      public int getHeight()
      Method to get the height of the picture in pixels
      Specified by:
      getHeight in interface DigitalPicture
      Returns:
      the height of the picture in pixels
    • getPictureFrame

      public PictureFrame getPictureFrame()
      Method to get the picture frame for the picture
      Returns:
      the picture frame associated with this picture (it may be null)
    • setPictureFrame

      public void setPictureFrame(PictureFrame pictureFrame)
      Method to set the picture frame for this picture
      Parameters:
      pictureFrame - the picture frame to use
    • getImage

      public Image getImage()
      Method to get an image from the picture
      Specified by:
      getImage in interface DigitalPicture
      Returns:
      the buffered image since it is an image
    • getBasicPixel

      public int getBasicPixel(int x, int y)
      Method to return the pixel value as an int for the given x and y location
      Specified by:
      getBasicPixel in interface DigitalPicture
      Parameters:
      x - the x coordinate of the pixel
      y - the y coordinate of the pixel
      Returns:
      the pixel value as an integer (alpha, red, green, blue)
    • setBasicPixel

      public void setBasicPixel(int x, int y, int rgb)
      Method to set the value of a pixel in the picture from an int
      Specified by:
      setBasicPixel in interface DigitalPicture
      Parameters:
      x - the x coordinate of the pixel
      y - the y coordinate of the pixel
      rgb - the new rgb value of the pixel (alpha, red, green, blue)
    • getPixel

      public Pixel getPixel(int x, int y)
      Method to get a pixel object for the given x and y location
      Specified by:
      getPixel in interface DigitalPicture
      Parameters:
      x - the x location of the pixel in the picture
      y - the y location of the pixel in the picture
      Returns:
      a Pixel object for this location
    • getPixels

      public Pixel[] getPixels()
      Method to get a one-dimensional array of Pixels for this simple picture
      Returns:
      a one-dimensional array of Pixel objects starting with y=0 to y=height-1 and x=0 to x=width-1.
    • load

      public void load(Image image)
      Method to load the buffered image with the passed image
      Parameters:
      image - the image to use
    • show

      public void show()
      Method to show the picture in a picture frame
      Specified by:
      show in interface DigitalPicture
    • hide

      public void hide()
      Method to hide the picture
    • setVisible

      public void setVisible(boolean flag)
      Method to make this picture visible or not
      Parameters:
      flag - true if you want it visible else false
    • repaint

      public void repaint()
      Method to open a picture explorer on a copy of this simple picture
    • addMessage

      public void addMessage(String message, int xPos, int yPos)
      Method to write the contents of the picture to a file with the passed name without throwing errors
      Parameters:
      fileName - the name of the file to write the picture to
    • drawString

      public void drawString(String text, int xPos, int yPos)
      Method to draw a string at the given location on the picture
      Parameters:
      text - the text to draw
      xPos - the left x for the text
      yPos - the top y for the text
    • scale

      public Picture scale(double xFactor, double yFactor)
      Method to create a new picture by scaling the current picture by the given x and y factors
      Parameters:
      xFactor - the amount to scale in x
      yFactor - the amount to scale in y
      Returns:
      the resulting picture
    • getPictureWithWidth

      public Picture getPictureWithWidth(int width)
      Method to create a new picture of the passed width. The aspect ratio of the width and height will stay the same.
      Parameters:
      width - the desired width
      Returns:
      the resulting picture
    • getPictureWithHeight

      public Picture getPictureWithHeight(int height)
      Method to create a new picture of the passed height. The aspect ratio of the width and height will stay the same.
      Parameters:
      height - the desired height
      Returns:
      the resulting picture
    • getTransformEnclosingRect

      public Rectangle2D getTransformEnclosingRect(AffineTransform trans)
      Method to get the coordinates of the enclosing rectangle after this transformation is applied to the current picture
      Returns:
      the enclosing rectangle
    • getTranslationEnclosingRect

      public Rectangle2D getTranslationEnclosingRect(AffineTransform trans)
      Method to get the coordinates of the enclosing rectangle after this transformation is applied to the current picture
      Returns:
      the enclosing rectangle
    • toString

      public String toString()
      Method to return a string with information about this picture
      Overrides:
      toString in class Object
      Returns:
      a string with information about the picture