Пример #1
0
  @Test
  public void testBitmask() {
    assertTrue("Assertions should be enabled.", ImageWorker.class.desiredAssertionStatus());
    ImageWorker worker = new ImageWorker(sstImage);

    worker.forceBitmaskIndexColorModel();
    assertEquals(1, worker.getNumBands());
    assertEquals(-1, worker.getTransparentPixel());
    assertTrue(worker.isBytes());
    assertFalse(worker.isBinary());
    assertTrue(worker.isIndexed());
    assertTrue(worker.isColorSpaceRGB());
    assertFalse(worker.isColorSpaceGRAYScale());
    assertFalse(worker.isTranslucent());

    final BufferedImage directRGB = getSyntheticRGB(true);
    worker = new ImageWorker(directRGB);
    worker.forceBitmaskIndexColorModel();
    assertEquals(1, worker.getNumBands());
    assertEquals(-1, worker.getTransparentPixel());
    assertTrue(worker.isBytes());
    assertFalse(worker.isBinary());
    assertTrue(worker.isIndexed());
    assertTrue(worker.isColorSpaceRGB());
    assertFalse(worker.isColorSpaceGRAYScale());
    assertFalse(worker.isTranslucent());

    final BufferedImage componentRGB = getSyntheticRGB(false);
    worker = new ImageWorker(componentRGB);
    worker.forceBitmaskIndexColorModel();
    assertEquals(1, worker.getNumBands());
    assertEquals(-1, worker.getTransparentPixel());
    assertTrue(worker.isBytes());
    assertFalse(worker.isBinary());
    assertTrue(worker.isIndexed());
    assertTrue(worker.isColorSpaceRGB());
    assertFalse(worker.isColorSpaceGRAYScale());
    assertFalse(worker.isTranslucent());

    final BufferedImage translucentIndexed = getSyntheticTranslucentIndexed();
    worker = new ImageWorker(translucentIndexed);
    assertTrue(worker.isBytes());
    assertFalse(worker.isBinary());
    assertTrue(worker.isIndexed());
    assertTrue(worker.isColorSpaceRGB());
    assertTrue(worker.isTranslucent());

    worker.forceIndexColorModelForGIF(true);
    assertEquals(1, worker.getNumBands());
    assertEquals(0, worker.getTransparentPixel());
    assertTrue(worker.isBytes());
    assertFalse(worker.isBinary());
    assertTrue(worker.isIndexed());
    assertTrue(worker.isColorSpaceRGB());
    assertFalse(worker.isTranslucent());
  }
Пример #2
0
  /**
   * Tests capability to write GIF image.
   *
   * @throws IOException If an error occured while writting the image.
   */
  @Test
  public void testGIFImageWrite() throws IOException {
    assertTrue("Assertions should be enabled.", ImageWorker.class.desiredAssertionStatus());
    // Get the image of the world with transparency.
    ImageWorker worker = new ImageWorker(worldDEMImage);
    show(worker, "Input GIF");
    RenderedImage image = worker.getRenderedImage();
    ColorModel cm = image.getColorModel();
    assertTrue("wrong color model", cm instanceof IndexColorModel);
    assertEquals("wrong transparency model", Transparency.OPAQUE, cm.getTransparency());
    // Writes it out as GIF on a file using index color model with
    final File outFile = TestData.temp(this, "temp.gif");
    worker.writeGIF(outFile, "LZW", 0.75f);

    // Read it back
    final ImageWorker readWorker = new ImageWorker(ImageIO.read(outFile));
    show(readWorker, "GIF to file");
    image = readWorker.getRenderedImage();
    cm = image.getColorModel();
    assertTrue("wrong color model", cm instanceof IndexColorModel);
    assertEquals("wrong transparency model", Transparency.OPAQUE, cm.getTransparency());

    // Write on an output streams.
    final OutputStream os = new FileOutputStream(outFile);
    worker = new ImageWorker(worldImage);
    worker.forceIndexColorModelForGIF(true);
    worker.writeGIF(os, "LZW", 0.75f);

    // Read it back.
    readWorker.setImage(ImageIO.read(outFile));
    show(readWorker, "GIF to output stream");
    image = readWorker.getRenderedImage();
    cm = image.getColorModel();
    assertTrue("wrong color model", cm instanceof IndexColorModel);
    assertEquals("wrong transparency model", Transparency.BITMASK, cm.getTransparency());
    assertEquals(
        "wrong transparent color index", 255, ((IndexColorModel) cm).getTransparentPixel());
    outFile.delete();
  }
Пример #3
0
  /** Tests the conversion between RGB and indexed color model. */
  @Test
  public void testRGB2Palette() {
    assertTrue("Assertions should be enabled.", ImageWorker.class.desiredAssertionStatus());
    final ImageWorker worker = new ImageWorker(worldImage);
    show(worker, "Input file");
    worker.forceIndexColorModelForGIF(true);

    // Convert to to index color bitmask
    ColorModel cm = worker.getRenderedImage().getColorModel();
    assertTrue("wrong color model", cm instanceof IndexColorModel);
    assertEquals("wrong transparency model", Transparency.BITMASK, cm.getTransparency());
    assertEquals("wrong transparency index", 255, ((IndexColorModel) cm).getTransparentPixel());
    show(worker, "Paletted bitmask");

    // Go back to rgb.
    worker.forceComponentColorModel();
    cm = worker.getRenderedImage().getColorModel();
    assertTrue("wrong color model", cm instanceof ComponentColorModel);
    assertEquals("wrong bands number", 4, cm.getNumComponents());

    show(worker, "RGB translucent");
    assertEquals("wrong transparency model", Transparency.TRANSLUCENT, cm.getTransparency());
    show(worker, "RGB translucent");
  }