Результат MediaWiki API
Это HTML-представление формата JSON. HTML хорош для отладки, но неудобен для практического применения.
Укажите параметр format для изменения формата вывода. Для отображения не-HTML-представления формата JSON, присвойте format=json.
См. полную документацию или справку API для получения дополнительной информации.
{ "compare": { "fromid": 1, "fromrevid": 1, "fromns": 0, "fromtitle": "\u0417\u0430\u0433\u043b\u0430\u0432\u043d\u0430\u044f \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430", "toid": 2, "torevid": 2, "tons": 0, "totitle": "Java by API/javax.imageio/ImageReader", "*": "<tr><td colspan=\"2\" class=\"diff-lineno\" id=\"mw-diff-left-l1\" >\u0421\u0442\u0440\u043e\u043a\u0430 1:</td>\n<td colspan=\"2\" class=\"diff-lineno\">\u0421\u0442\u0440\u043e\u043a\u0430 1:</td></tr>\n<tr><td class='diff-marker'>\u2212</td><td class='diff-deletedline'><div><del class=\"diffchange diffchange-inline\"><big>'''\u0412\u0438\u043a\u0438-\u0434\u0432\u0438\u0436\u043e\u043a \u00abMediaWiki\u00bb \u0443\u0441\u043f\u0435\u0448\u043d\u043e \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d.'''</big></del></div></td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">== ImageReader: addIIOReadProgressListener(IIOReadProgressListener listener) ==</ins></div></td></tr>\n<tr><td class='diff-marker'> </td><td class='diff-context'></td><td class='diff-marker'> </td><td class='diff-context'></td></tr>\n<tr><td class='diff-marker'>\u2212</td><td class='diff-deletedline'><div><del class=\"diffchange\">\u0418\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u043f\u043e \u0440\u0430\u0431\u043e\u0442\u0435 \u0441 \u044d\u0442\u043e\u0439 \u0432\u0438\u043a\u0438 \u043c\u043e\u0436\u043d\u043e \u043d\u0430\u0439\u0442\u0438 \u0432 [http://meta.wikimedia.org/wiki/%D0%9F%D0%BE%D0%BC%D0%BE%D1%89%D1%8C:%D0%A1%D0%BE%D0%B4%D0%B5%D1%80%D0%B6%D0%B0%D0%BD%D0%B8%D0%B5 \u0441\u043f\u0440\u0430\u0432\u043e\u0447\u043d\u043e\u043c \u0440\u0443\u043a\u043e\u0432\u043e\u0434\u0441\u0442\u0432\u0435].</del></div></td><td colspan=\"2\"> </td></tr>\n<tr><td class='diff-marker'> </td><td class='diff-context'></td><td class='diff-marker'> </td><td class='diff-context'></td></tr>\n<tr><td class='diff-marker'>\u2212</td><td class='diff-deletedline'><div>== <del class=\"diffchange diffchange-inline\">\u041d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u043e\u043b\u0435\u0437\u043d\u044b\u0435 \u0440\u0435\u0441\u0443\u0440\u0441\u044b </del>==</div></td><td class='diff-marker'>+</td><td class='diff-addedline'><div> </div></td></tr>\n<tr><td class='diff-marker'>\u2212</td><td class='diff-deletedline'><div><del class=\"diffchange diffchange-inline\">* [http</del>:/<del class=\"diffchange diffchange-inline\">/www</del>.<del class=\"diffchange diffchange-inline\">mediawiki</del>.<del class=\"diffchange diffchange-inline\">org</del>/<del class=\"diffchange diffchange-inline\">wiki/Manual</del>:<del class=\"diffchange diffchange-inline\">Configuration_settings \u0421\u043f\u0438\u0441\u043e\u043a \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u044b\u0445 \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043a</del>];</div></td><td class='diff-marker'>+</td><td class='diff-addedline'><div> </div></td></tr>\n<tr><td class='diff-marker'>\u2212</td><td class='diff-deletedline'><div><del class=\"diffchange diffchange-inline\">* </del>[<del class=\"diffchange diffchange-inline\">http://www</del>.<del class=\"diffchange diffchange-inline\">mediawiki</del>.<del class=\"diffchange diffchange-inline\">org</del>/<del class=\"diffchange diffchange-inline\">wiki/Manual</del>:<del class=\"diffchange diffchange-inline\">FAQ \u0427\u0430\u0441\u0442\u043e \u0437\u0430\u0434\u0430\u0432\u0430\u0435\u043c\u044b\u0435 \u0432\u043e\u043f\u0440\u043e\u0441\u044b \u0438 \u043e\u0442\u0432\u0435\u0442\u044b \u043f\u043e MediaWiki</del>];</div></td><td class='diff-marker'>+</td><td class='diff-addedline'><div> </div></td></tr>\n<tr><td class='diff-marker'>\u2212</td><td class='diff-deletedline'><div><del class=\"diffchange diffchange-inline\">* </del>[<del class=\"diffchange diffchange-inline\">https://lists</del>.<del class=\"diffchange diffchange-inline\">wikimedia</del>.<del class=\"diffchange diffchange-inline\">org</del>/<del class=\"diffchange diffchange-inline\">mailman/listinfo/mediawiki</del>-<del class=\"diffchange diffchange-inline\">announce \u0420\u0430\u0441\u0441\u044b\u043b\u043a\u0430 \u0443\u0432\u0435\u0434\u043e\u043c\u043b\u0435\u043d\u0438\u0439 \u043e \u0432\u044b\u0445\u043e\u0434\u0435 \u043d\u043e\u0432\u044b\u0445 \u0432\u0435\u0440\u0441\u0438\u0439 MediaWiki</del>].</div></td><td class='diff-marker'>+</td><td class='diff-addedline'><div> </div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">  </ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">  <!-- start source code --></ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">  </ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">    <source lang</ins>=<ins class=\"diffchange diffchange-inline\">"java"></ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">  </ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div> </div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">import java.awt.image.BufferedImage;</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">import java.io.File;</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">import java.io.FileInputStream;</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">import java.util.Iterator;</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">import javax.imageio.ImageIO;</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">import javax.imageio.ImageReader;</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">import javax.imageio.ImageWriter;</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">import javax.imageio.event.IIOReadProgressListener;</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">import javax.imageio.stream.ImageInputStream;</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">import javax.imageio.stream.ImageOutputStream;</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">public class Main{</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">  static public void main(String args[]) throws Exception {</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">    FileInputStream fin = new FileInputStream("a.gif");</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">    Iterator readers </ins>= <ins class=\"diffchange diffchange-inline\">ImageIO.getImageReadersBySuffix("GIF");</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">    ImageReader imageReader </ins>= <ins class=\"diffchange diffchange-inline\">(ImageReader) readers.next();</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">    ImageInputStream iis </ins>= <ins class=\"diffchange diffchange-inline\">ImageIO.createImageInputStream(fin);</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">    imageReader.setInput(iis, false);</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">    imageReader.addIIOReadProgressListener(new IIOReadProgressListener() {</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">      public void imageComplete(ImageReader source) {</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">        System.out.println("image complete " + source);</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">      }</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">      public void imageProgress(ImageReader source, float percentageDone) {</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">        System.out.println("image progress " + source + ": " + percentageDone + "%");</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">      }</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">      public void imageStarted(ImageReader source, int imageIndex) {</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">        System.out.println("image #" + imageIndex + " started " + source);</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">      }</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">      public void readAborted(ImageReader source) {</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">        System.out.println("read aborted " + source);</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">      }</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">      public void sequenceComplete(ImageReader source) {</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">        System.out.println("sequence complete " + source);</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">      }</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">      public void sequenceStarted(ImageReader source, int minIndex) {</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">        System.out.println("sequence started " + source + ": " + minIndex);</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">      }</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">      public void thumbnailComplete(ImageReader source) {</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">        System.out.println("thumbnail complete " + source);</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">      }</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">      public void thumbnailProgress(ImageReader source, float percentageDone) {</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">        System.out.println("thumbnail started " + source + "</ins>: <ins class=\"diffchange diffchange-inline\">" + percentageDone + "%");</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">      }</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">      public void thumbnailStarted(ImageReader source, int imageIndex, int thumbnailIndex) {</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">        System.out.println("thumbnail progress " + source + ", " + thumbnailIndex + " of "</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">            + imageIndex);</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">      }</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">    });</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">    BufferedImage image = imageReader.read(0);</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">    Iterator imageWriters = ImageIO.getImageWritersBySuffix("JPG");</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">    ImageWriter imageWriter = (ImageWriter) imageWriters.next();</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">    File file = new File("b.JPG");</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">    ImageOutputStream ios = ImageIO.createImageOutputStream(file);</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">    imageWriter.setOutput(ios);</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">    imageWriter.write(image);</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">  }</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">}</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">  </ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">    </ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">  <</ins>/<ins class=\"diffchange diffchange-inline\">source></ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">    </ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">  </ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">  <!-- end source code --></ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">  </ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div> </div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div> </div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div> </div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div> </div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">== ImageReader: getFormatName() ==</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div> </div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div> </div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div> </div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div> </div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div> </div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div> </div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">  </ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">  <!-- start source code --></ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">  </ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">    <source lang="java"></ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">  </ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">import java.io.File;</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">import java.io.FileInputStream;</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">import java.io.IOException;</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">import java.io.InputStream;</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">import java.util.Iterator;</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">import javax.imageio.ImageIO;</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">import javax.imageio.ImageReader;</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">import javax.imageio.stream.ImageInputStream;</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">public class Main {</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">  public static void main(String[] argv) throws Exception {</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">    File file = new File("image.gif");</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">    System.out.println(getFormatName(file));</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">    InputStream is = new FileInputStream(file);</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">    is.close();</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">    System.out.println(getFormatName(is));</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">  }</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">  private static String getFormatName(Object o) {</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">    try {</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">      ImageInputStream iis = ImageIO.createImageInputStream(o);</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">      Iterator iter = ImageIO.getImageReaders(iis);</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">      if (!iter.hasNext()) {</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">        return null;</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">      }</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">      ImageReader reader = (ImageReader) iter</ins>.<ins class=\"diffchange diffchange-inline\">next();</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">      iis</ins>.<ins class=\"diffchange diffchange-inline\">close();</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">      return reader.getFormatName();</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">    } catch (IOException e) {</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">    }</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">    return null;</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">  }</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">}</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">  </ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">    </ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">  <</ins>/<ins class=\"diffchange diffchange-inline\">source></ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">    </ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">  </ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">  <!-- end source code --></ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">  </ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div> </div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div> </div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div> </div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div> </div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">== ImageReader</ins>: <ins class=\"diffchange diffchange-inline\">getNumImages(boolean allowSearch) ==</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div> </div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div> </div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div> </div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div> </div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div> </div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div> </div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">  </ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">  <!-- start source code --></ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">  </ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">    <source lang="java"></ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">  </ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">import java.awt.Graphics;</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">import java.awt.Panel;</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">import java.awt.image.BufferedImage;</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">import java.io.FileInputStream;</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">import java.util.Iterator;</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">import javax.imageio.ImageIO;</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">import javax.imageio.ImageReader;</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">import javax.imageio.stream.ImageInputStream;</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">import javax.swing.JFrame;</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">public class Main extends Panel{</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">  private BufferedImage images[];</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">  private int imageIndex = 0;</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">  public Main(String filename) throws Exception{</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">      FileInputStream fin = new FileInputStream(filename);</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">      String suffix = filename.substring(filename.lastIndexOf(".") + 1);</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">      System.out.println("suf " + suffix);</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">      Iterator readers = ImageIO.getImageReadersBySuffix(suffix);</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">      ImageReader imageReader = (ImageReader) readers.next();</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">      ImageInputStream iis = ImageIO.createImageInputStream(fin);</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">      imageReader.setInput(iis, false);</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">      int num = imageReader.getNumImages(true);</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">      images = new BufferedImage[num];</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">      for (int i = 0; i < num; ++i) {</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">        images[i] = imageReader.read(i);</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">      }</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">      fin.close();</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">  }</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">  public void paint(Graphics g) {</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">    if (images == null)</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">      return;</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">    g.drawImage(images[imageIndex</ins>]<ins class=\"diffchange diffchange-inline\">, 0, 0, null)</ins>;</div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">    imageIndex = (imageIndex + 1) % images.length;</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">  }</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">  static public void main(String args</ins>[<ins class=\"diffchange diffchange-inline\">]) throws Exception {</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">    JFrame frame = new JFrame("ShowImageIR.java");</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">    Panel panel = new Main(args[0]);</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">    frame.getContentPane().add(panel);</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">    frame.setSize(400, 400);</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">    frame</ins>.<ins class=\"diffchange diffchange-inline\">setDefaultCloseOperation(JFrame</ins>.<ins class=\"diffchange diffchange-inline\">EXIT_ON_CLOSE);</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">    frame.setVisible(true);</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">  }</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">}</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">  </ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">    </ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">  <</ins>/<ins class=\"diffchange diffchange-inline\">source></ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">    </ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">  </ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">  <!-- end source code --></ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">  </ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div> </div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div> </div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div> </div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div> </div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">== ImageReader</ins>: <ins class=\"diffchange diffchange-inline\">read(int imageIndex) ==</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div> </div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div> </div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div> </div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div> </div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div> </div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div> </div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">  </ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">  <!-- start source code --></ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">  </ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">    <source lang="java"></ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">  </ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">import java.awt.Graphics;</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">import java.awt.Panel;</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">import java.awt.image.BufferedImage;</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">import java.io.FileInputStream;</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">import java.util.Iterator;</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">import javax.imageio.ImageIO;</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">import javax.imageio.ImageReader;</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">import javax.imageio.stream.ImageInputStream;</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">import javax.swing.JFrame;</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">public class Main extends Panel{</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">  private BufferedImage images[];</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">  private int imageIndex = 0;</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">  public Main(String filename) throws Exception{</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">      FileInputStream fin = new FileInputStream(filename);</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">      String suffix = filename.substring(filename.lastIndexOf(".") + 1);</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">      System.out.println("suf " + suffix);</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">      Iterator readers = ImageIO.getImageReadersBySuffix(suffix);</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">      ImageReader imageReader = (ImageReader) readers.next();</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">      ImageInputStream iis = ImageIO.createImageInputStream(fin);</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">      imageReader.setInput(iis, false);</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">      int num = imageReader.getNumImages(true);</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">      images = new BufferedImage[num];</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">      for (int i = 0; i < num; ++i) {</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">        images[i] = imageReader.read(i);</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">      }</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">      fin.close();</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">  }</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">  public void paint(Graphics g) {</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">    if (images == null)</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">      return;</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">    g.drawImage(images[imageIndex], 0, 0, null);</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">    imageIndex = (imageIndex + 1) % images.length;</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">  }</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">  static public void main(String args[</ins>]<ins class=\"diffchange diffchange-inline\">) throws Exception {</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">    JFrame frame = new JFrame("ShowImageIR.java")</ins>;</div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">    Panel panel = new Main(args</ins>[<ins class=\"diffchange diffchange-inline\">0]);</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">    frame.getContentPane().add(panel);</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">    frame.setSize(400, 400);</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">    frame.setDefaultCloseOperation(JFrame</ins>.<ins class=\"diffchange diffchange-inline\">EXIT_ON_CLOSE);</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">    frame</ins>.<ins class=\"diffchange diffchange-inline\">setVisible(true);</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">  }</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">}</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">  </ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">    </ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">  <</ins>/<ins class=\"diffchange diffchange-inline\">source></ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">    </ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">  </ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">  <!-- end source code --></ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">  </ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div> </div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div> </div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div> </div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div> </div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">== ImageReader: setInput(Object input, boolean seekForwardOnly) ==</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div> </div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div> </div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div> </div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div> </div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div> </div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div> </div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">  </ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">  <!-- start source code -</ins>-<ins class=\"diffchange diffchange-inline\">></ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">  </ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">    <source lang="java"></ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">  </ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div> </div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">import java.awt.Graphics;</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">import java.awt.Panel;</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">import java.awt.image.BufferedImage;</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">import java.io.FileInputStream;</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">import java.util.Iterator;</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">import javax.imageio.ImageIO;</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">import javax.imageio.ImageReader;</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">import javax.imageio.stream.ImageInputStream;</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">import javax.swing.JFrame;</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">public class Main extends Panel{</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">  private BufferedImage images[];</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">  private int imageIndex = 0;</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">  public Main(String filename) throws Exception{</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">      FileInputStream fin = new FileInputStream(filename);</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">      String suffix = filename.substring(filename.lastIndexOf(".") + 1);</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">      System.out.println("suf " + suffix);</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">      Iterator readers = ImageIO.getImageReadersBySuffix(suffix);</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">      ImageReader imageReader = (ImageReader) readers.next();</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">      ImageInputStream iis = ImageIO.createImageInputStream(fin);</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">      imageReader.setInput(iis, false);</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">      int num = imageReader.getNumImages(true);</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">      images = new BufferedImage[num];</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">      for (int i = 0; i < num; ++i) {</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">        images[i] = imageReader.read(i);</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">      }</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">      fin.close();</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">  }</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">  public void paint(Graphics g) {</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">    if (images == null)</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">      return;</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">    g.drawImage(images[imageIndex], 0, 0, null);</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">    imageIndex = (imageIndex + 1) % images.length;</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">  }</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">  static public void main(String args[</ins>]<ins class=\"diffchange diffchange-inline\">) throws Exception {</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">    JFrame frame = new JFrame("ShowImageIR.java");</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">    Panel panel = new Main(args[0]);</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">    frame.getContentPane()</ins>.<ins class=\"diffchange diffchange-inline\">add(panel);</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">    frame.setSize(400, 400);</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">    frame.setVisible(true);</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">  }</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">}</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">  </ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">    </ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">  </source></ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">    </ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">  </ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">  <!-- end source code --></ins></div></td></tr>\n" } }