package controllers; import java.awt.Color; import java.awt.Graphics2D; import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; import java.util.List; import javax.imageio.ImageIO; import helpers.FileHelper; import play.Logger; import play.mvc.Controller; import play.mvc.Result; public class Colors extends Controller { public Result index() { List colors = models.Color.Find.where().order("hex DESC").findList(); return ok(views.html.Colors.index.render(colors)); } public Result sample(String hex, Integer width, Integer height) { models.Color c = models.Color.Find.where().eq("hex", hex).findUnique(); if (c == null) { return notFound("color not found!"); } File image = new File( FileHelper.COLORS_DIRECTORY + File.separator + c.hex + "_" + width + "_" + height + ".png"); if (!image.exists()) { BufferedImage bi = new BufferedImage(width, height, BufferedImage.TYPE_INT_ARGB); Graphics2D graphics = bi.createGraphics(); graphics.setPaint(new Color(c.r, c.g, c.b)); graphics.fillRect(0, 0, bi.getWidth(), bi.getHeight()); try { ImageIO.write(bi, "png", image); } catch (IOException e) { Logger.error(e.getLocalizedMessage(), e); } } return ok(image); } }