private void generatePage(Page page, Page previousPage, Page nextPage) throws IOException { System.out.println("Generating page " + page.getFile()); try (PrintWriter pw = new PrintWriter(new FileOutputStream(page.getFile()))) { pw.println( "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n"); pw.println("<html>\n"); pw.println("<head>\n"); pw.println("<title>Expert Minesweeper Strategies</title>\n"); pw.println( "<meta http-equiv=\"Content-Type\" content=\"text/html; charset=iso-8859-15\" />\n"); pw.println("<link rel=\"stylesheet\" href=\"../styles.css\" />\n"); pw.println("</head>\n"); pw.println("<body>\n"); pw.println(" <div id=\"conteneur\">\n"); pw.println(" <div id=\"header\">Minesweeper Patterns</div>\n"); pw.println(" <div id=\"haut\">\n"); pw.println(" <ul class=\"menuhaut\">\n"); pw.println(" <li><a href=\"index.html\">Intro</a></li>\n"); pw.println(" <li>Basics</li>\n"); pw.println(" <li><a href=\"triangles.html\">Triangles</a></li>\n"); pw.println(" <li><a href=\"combos.html\">Combos</a></li>\n"); pw.println(" <li><a href=\"holes.html\">Holes</a></li>\n"); pw.println(" <li><a href=\"advanced.html\">Advanced</a></li>\n"); pw.println(" <li><a href=\"links.html\">Links</a></li>\n"); pw.println(" </ul>\n"); pw.println(" </div>\n"); pw.println("\n"); pw.println(" <div id=\"centre\">\n"); for (GifDescriptor gifDescriptor : page.getGifs()) { generateGif(gifDescriptor, page.getDir()); pw.println("<p align=\"center\">"); pw.println("<img src=\"" + gifDescriptor.getName() + ".gif\"/>"); pw.println("</p>\n"); } // pw.println(" </div>\n"); if (previousPage != null) { pw.println( " <div id=\"prevlink\"><a href=\"" + previousPage.getFile().getCanonicalPath() + "\">Prev: " + previousPage.getTitle() + "</a></div>\n"); } if (nextPage != null) { pw.println( " <div id=\"nextlink\"><a href=\"" + nextPage.getFile().getCanonicalPath() + "\">Next: " + nextPage.getTitle() + "</a></div>\n"); } pw.println(" </div>\n"); pw.println(" </div>\n"); pw.println("</body>\n"); pw.println("</html>\n"); } }
private void generateGif(GifDescriptor descriptor, File dir) throws IOException { try (ImageOutputStream output = new FileImageOutputStream(new File(dir, descriptor.getName() + ".gif")); GifSequenceWriter writer = new GifSequenceWriter(output, IMAGE_TYPE_GIF, TIME_BETWEEN_FRAMES_MS, true)) { for (GifFrame gifFrame : descriptor.getFrames()) { BufferedImage layer = generateFrame(gifFrame); writer.writeToSequence(layer); } } }