Java Reference
In-Depth Information
11.5
ImageViewer 1.0: the first complete version
We shall now work on creating the first complete version—one that can really accomplish the
main task: display some images.
11.5.1
Image-processing classes
On the way to the solution, we shall investigate one more interim version:
imageviewer0-4
. Its
class structure is shown in Figure 11.5.
Figure 11.5
The class structure
of the image
viewer application
,PDJH9LHZHU
,PDJH3DQHO
,PDJH)LOH0DQDJHU
2),PDJH
As you can see, we have added three new classes:
OFImage
,
ImagePanel
, and
ImageFileManager
.
OFImage
is a class to represent an image that we want to display and manipulate.
ImageFileManager
is a helper class that provides static methods to read an image file (in JPEG or PNG format) from disk
and return it in
OFImage
format and then save the
OFImage
back to disk.
ImagePanel
is a custom
Swing component to show the image in our GUI.
We shall briefly discuss the most important aspects of each of these classes in some more detail.
We shall not, however, explain them completely—that is left as an investigation for the curious
reader.
The
OFImage
class is our own custom format for representing an image in memory. You can
think of an
OFImage
as a two-dimensional array of pixels. Each of the pixels can have a color.
We use the standard class
Color
(from package
java.awt
) to represent each pixel's color.
(Have a look at the documentation of class
Color
as well; we shall need it later.)
OFImage
is implemented as a subclass of the Java standard class
BufferedImage
(from pack-
age
java.awt.image
).
BufferedImage
gives us most of the functionality we want (it also
represents an image as a two-dimensional array), but it does not have methods to set or get a
pixel using a
Color
object (it uses different formats for this, which we do not want to use). So
we made our own subclass that adds these two methods.
For this project, we can treat
OFImage
like a library class; you will not need to modify this
class.
Search WWH ::
Custom Search