/* * SerializableBufferedImageTest.java * * Created on Jun 30, 2008, 12:52:24 PM * * Description: Provides a serializable buffered image. * * Copyright (C) Dec 12, 2011 reed. * * This program is free software; you can redistribute it and/or modify it under the terms * of the GNU General Public License as published by the Free Software Foundation; either * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. * See the GNU General Public License for more details. * * You should have received a copy of the GNU General Public License along with this program; * if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ package org.texai.util; import java.io.FileInputStream; import java.io.ObjectInputStream; import java.io.ObjectOutputStream; import java.io.FileOutputStream; import java.io.File; import java.io.IOException; import org.apache.log4j.Logger; import java.awt.image.BufferedImage; import javax.imageio.ImageIO; import org.junit.After; import org.junit.AfterClass; import org.junit.Before; import org.junit.BeforeClass; import org.junit.Test; import static org.junit.Assert.*; /** Provides a serializable buffered image. * * @author reed */ public class SerializableBufferedImageTest { /** the log4j logger */ private static final Logger LOGGER = Logger.getLogger(SerializableBufferedImageTest.class); public SerializableBufferedImageTest() { } @BeforeClass public static void setUpClass() throws Exception { } @AfterClass public static void tearDownClass() throws Exception { } @Before public void setUp() { } @After public void tearDown() { } /** * Test of class SerializableBufferedImage. */ @Test public void test1() { LOGGER.info("color SerializableBufferedImage"); try { BufferedImage bufferedImage = ImageIO.read(new File("data/webcam_stephenreed.jpg")); SerializableBufferedImage serializableBufferedImage = new SerializableBufferedImage(bufferedImage); assertEquals("[3 byte RGB 320x240]", serializableBufferedImage.toString()); BufferedImage bufferedImage2 = serializableBufferedImage.getImage(); assertEquals(bufferedImage.getType(), bufferedImage2.getType()); assertEquals(bufferedImage.getWidth(), bufferedImage2.getWidth()); assertEquals(bufferedImage.getHeight(), bufferedImage2.getHeight()); try (ObjectOutputStream objectOutputStream = new ObjectOutputStream(new FileOutputStream("data/image.ser"))) { objectOutputStream.writeObject(serializableBufferedImage); } ObjectInputStream objectInputStream = new ObjectInputStream( new FileInputStream("data/image.ser")); SerializableBufferedImage serializableBufferedImage2 = (SerializableBufferedImage) objectInputStream.readObject(); assertEquals("[3 byte RGB 320x240]", serializableBufferedImage2.toString()); BufferedImage bufferedImage3 = serializableBufferedImage.getImage(); assertEquals(bufferedImage.getType(), bufferedImage3.getType()); assertEquals(bufferedImage.getWidth(), bufferedImage3.getWidth()); assertEquals(bufferedImage.getHeight(), bufferedImage3.getHeight()); File outputfile = new File("data/webcam_stephenreed2.jpg"); ImageIO.write(bufferedImage, "jpg", outputfile); } catch (IOException | ClassNotFoundException ex) { LOGGER.error(StringUtils.getStackTraceAsString(ex)); fail(ex.getMessage()); } } /** * Test of class SerializableBufferedImage. */ @Test public void test2() { LOGGER.info("greyscale SerializableBufferedImage"); try { BufferedImage bufferedImage = ImageIO.read(new File("data/stephen-reed_13.jpg")); SerializableBufferedImage serializableBufferedImage = new SerializableBufferedImage(bufferedImage); assertEquals("[greyscale 92x112]", serializableBufferedImage.toString()); BufferedImage bufferedImage2 = serializableBufferedImage.getImage(); assertEquals(bufferedImage.getType(), bufferedImage2.getType()); assertEquals(bufferedImage.getWidth(), bufferedImage2.getWidth()); assertEquals(bufferedImage.getHeight(), bufferedImage2.getHeight()); try (ObjectOutputStream objectOutputStream = new ObjectOutputStream(new FileOutputStream("data/image.ser"))) { objectOutputStream.writeObject(serializableBufferedImage); } ObjectInputStream objectInputStream = new ObjectInputStream( new FileInputStream("data/image.ser")); SerializableBufferedImage serializableBufferedImage2 = (SerializableBufferedImage) objectInputStream.readObject(); assertEquals("[greyscale 92x112]", serializableBufferedImage2.toString()); BufferedImage bufferedImage3 = serializableBufferedImage.getImage(); assertEquals(bufferedImage.getType(), bufferedImage3.getType()); assertEquals(bufferedImage.getWidth(), bufferedImage3.getWidth()); assertEquals(bufferedImage.getHeight(), bufferedImage3.getHeight()); File outputfile = new File("data/stephen-reed_13_2.jpg"); ImageIO.write(bufferedImage, "jpg", outputfile); } catch (IOException | ClassNotFoundException ex) { LOGGER.error(StringUtils.getStackTraceAsString(ex)); fail(ex.getMessage()); } } }