This chapter has discussed techniques for obtaining and displaying images. We've introduced image producers and image observers, and we've explored how they interact with each other when an image producer is loading an image. We've seen how to smoothly paint images a scanline at a time and how to display a multi-frame image without flicker.
Additionally, we've seen how the AWT animates multiframe images such as animated GIF and how to manually animate such images. We've also taken a look at how AWT components handle the loading of an image and how to load images as resources.
In the next chapter, we will delve into image filtering.