Download Q5.java.
Q5.java
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.RenderingHints;
import java.awt.geom.Ellipse2D;
import java.awt.geom.Line2D;
import java.awt.geom.Rectangle2D;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;
class Face {
void draw(Graphics2D g2) {
// draw a circle as the face
double radius = 150;
Ellipse2D circle = new Ellipse2D.Double();
circle.setFrameFromCenter(190, 180, 190 + radius, 180 + radius);
g2.setPaint(Color.magenta);
g2.draw(circle);
// draw two rectangles as two eyes
Rectangle2D rect_1 = new Rectangle2D.Double(120, 115, 35, 30);
Rectangle2D rect_2 = new Rectangle2D.Double(215, 115, 35, 30);
g2.setPaint(Color.blue);
g2.fill(rect_1);
g2.fill(rect_2);
// draw the ellipse as the nose
g2.setPaint(Color.green);
Ellipse2D ellipse = new Ellipse2D.Double(165, 180, 50, 30);
g2.draw(ellipse);
g2.fill(ellipse);
// draw a line as the mouth
g2.setPaint(Color.red);
g2.draw(new Line2D.Double(140, 260, 150 + 100, 250));
}
}
public class Q5 {
public void createImage(String filename)
{
int w = 360;
int h = 360;
BufferedImage img = new BufferedImage(w, h,
BufferedImage.TYPE_INT_RGB);
Graphics2D g2 = img.createGraphics();
g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING,
RenderingHints.VALUE_ANTIALIAS_ON);
// fill background
Color bg = new Color(238,238,238);
g2.setPaint(bg);
g2.fillRect(0,0,w,h);
// generate user image
Face f = new Face();
f.draw(g2);
// write to file
String format = "jpg";
File file = new File(filename + "." + format);
try {
ImageIO.write(img, format, file);
} catch (IOException e) {
System.out.println("image write failed");
//e.printStackTrace();
}
}
public static void main(String[] args) {
String name = "test";
if (args.length>0) name = (args[0]);
Q5 proj = new Q5();
proj.createImage(name);
}
}
Maintained by John Loomis, updated Sun Oct 06 17:24:08 2013