In this assignment you will use the Java imaging API to load, transcode and store images. You will also use the API to extract some basic metadata from the images and store them to a text file for fast access. Installation/Deployment
Your programs should be stable in the sense that invalid input files should be ignored (a message should be written to System.err) rather than stop the program execution! Your programs will be tested with other (possibly corrupt) image files than the ones in the assignment zip file).
analyze the java files in the itm/image and in the itm/model package
you have to be able to explain how these classes work when you hand in the first assignment!
In order to fulfill task 1.3 you should refresh your knowledge about basic trigonometry and matrix/vector multiplications
Task 1.1: comparison of image formats - 20 P
Update the file java/itm/image/ImageConverter.java so that one can call the java program with 4 parameters, an input file/directory name, an output directory name, a target file format and an optional quality parameter. The program should be able to
read the images
convert them to the passed target format
store the image to the output directory.
For BMP and PNG files it is ok to use the default image writer.
For JPEG a configurable writer has to be used. The quality parameter has to be passed to this writer.
The output filename for BMP and PNG files should be the original name appended with ".bmp" and ".png" respectively.
The output filename for JPEG files should conform to the following structure: (original name)-(quality).jpeg Example:
Can the created histogram be used to reconstruct the image? What other information would be needed?
Would your function work with the HSV or CMYK color space?
Explain the difference between an individual color histogram, a combined color histogram and an intensity histogram. What information is displayed in each of these diagrams? What histogram type did we use?
Explain the concept of histogram bins.
You have to hand in the following results for this assignment:
A reworked ImageConverter.java that corresponds to the above mentioned specification
A reworked ImageMedia.java that corresponds to the above mentioned specification
A reworked ImageMetadataGenerator.java that corresponds to the above mentioned specification
A reworked ImageThumbnailGenerator.java that corresponds to the above mentioned specification
Answers to all above mentioned questions in written form (1-2 A4 page maximum!) - see file Answers.txt.