Ejemplo n.º 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());
  }
Ejemplo n.º 2
0
  @Test
  public void testYCbCr() {
    assertTrue("Assertions should be enabled.", ImageWorker.class.desiredAssertionStatus());
    // check the presence of the PYCC.pf file that contains the profile for the YCbCr color space
    if (ImageWorker.CS_PYCC == null) {
      System.out.println(
          "testYCbCr disabled since we are unable to locate the YCbCr color profile");
      return;
    }
    // RGB component color model
    ImageWorker worker = new ImageWorker(getSyntheticRGB(false));

    RenderedImage image = worker.getRenderedImage();
    assertTrue(image.getColorModel() instanceof ComponentColorModel);
    assertTrue(!image.getColorModel().hasAlpha());
    int sample = image.getTile(0, 0).getSample(0, 0, 2);
    assertEquals(0, sample);

    assertFalse(worker.isColorSpaceYCbCr());
    worker.forceColorSpaceYCbCr();
    assertTrue(worker.isColorSpaceYCbCr());
    worker.forceColorSpaceRGB();
    assertFalse(worker.isColorSpaceYCbCr());
    assertTrue(worker.isColorSpaceRGB());

    // RGB Palette
    worker.forceBitmaskIndexColorModel();
    image = worker.getRenderedImage();
    assertTrue(image.getColorModel() instanceof IndexColorModel);
    assertTrue(!image.getColorModel().hasAlpha());

    assertFalse(worker.isColorSpaceYCbCr());
    worker.forceColorSpaceYCbCr();
    assertTrue(worker.isColorSpaceYCbCr());
    worker.forceColorSpaceRGB();
    assertFalse(worker.isColorSpaceYCbCr());
    assertTrue(worker.isColorSpaceRGB());

    // RGB DirectColorModel
    worker = new ImageWorker(getSyntheticRGB(true));
    image = worker.getRenderedImage();
    assertTrue(image.getColorModel() instanceof DirectColorModel);
    assertTrue(!image.getColorModel().hasAlpha());
    sample = image.getTile(0, 0).getSample(0, 0, 2);
    assertEquals(0, sample);

    assertFalse(worker.isColorSpaceYCbCr());
    worker.forceColorSpaceYCbCr();
    assertTrue(worker.isColorSpaceYCbCr());
    worker.forceColorSpaceRGB();
    assertFalse(worker.isColorSpaceYCbCr());
    assertTrue(worker.isColorSpaceRGB());
  }