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