12. Meme Generator¶
Java Meme Generator¶
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 | package edu.simpson.cis320.crud_app; import javax.imageio.ImageIO; import javax.servlet.ServletContext; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.awt.*; import java.awt.image.BufferedImage; import java.io.*; import java.util.logging.Level; import java.util.logging.Logger; // Map the servlet to a URL @WebServlet(name = "meme", value = "/meme") public class MemeServlet extends HttpServlet { // Create logger for this class private final static Logger log = Logger.getLogger(MemeServlet.class.getName()); public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException { // Log that we got here log.log(Level.INFO, "Meme servlet"); // Grab the message as a parameter. Default if there's none. String message = request.getParameter("message"); if (message == null) { message = "Simpson Storm"; } // Get the servlet 'context', and from that, grab the image. // Image should be stored in the "resources" folder. ServletContext context = getServletContext(); InputStream imageStream = context.getResourceAsStream("/WEB-INF/classes/simpson.jpg"); BufferedImage img = ImageIO.read(imageStream); // Get the graphics context. Like a pen, for drawing. Graphics g = img.getGraphics(); // Set the font for the graphics context. String fontName = "Century Schoolbook"; int fontSize = 140; int fontStyle = Font.BOLD; Font font = new Font(fontName, fontStyle, fontSize); g.setFont(font); // Set the color for the graphics context g.setColor(new Color(0x6B0623)); // Draw our text g.drawString(message, 100, 100); // Set the color for the graphics context g.setColor(new Color(0xEEB41E)); // Draw our text, offset g.drawString(message, 105, 105); // Get rid of the pen, free up resources g.dispose(); // This will be a jpeg image response.setContentType("image/jpg"); // Grab the output stream OutputStream out = response.getOutputStream(); // Write out image to the output stream ImageIO.write(img, "JPG", out); } } |