Search in sources :

Example 46 with PaletteData

use of org.eclipse.swt.graphics.PaletteData in project eclipse.platform.swt by eclipse.

the class Test_org_eclipse_swt_graphics_ImageData method test_setPixelsIII$BI.

@Test
public void test_setPixelsIII$BI() {
    final int SIZE = 20;
    final int OFFSET = 1;
    byte[] pixelData = new byte[SIZE];
    // test 1 bit
    imageData = new ImageData(IMAGE_DIMENSION, IMAGE_DIMENSION, 1, new PaletteData(new RGB(0, 0, 0), new RGB(255, 255, 255)));
    byte[] values = new byte[] { 0x1, 0x1, 0x1, 0x1, 0x1 };
    imageData.setPixels(0, 1, values.length - OFFSET, values, OFFSET);
    imageData.getPixels(0, 1, IMAGE_DIMENSION, pixelData, 0);
    for (int i = 0; i < pixelData.length; i++) {
        if (i + OFFSET < values.length) {
            assertEquals(":a:", values[i + OFFSET], pixelData[i]);
        } else {
            assertEquals(":b:", 0, pixelData[i]);
        }
    }
    // test 2 bit
    imageData = new ImageData(IMAGE_DIMENSION, IMAGE_DIMENSION, 2, new PaletteData(new RGB(0, 0, 0), new RGB(255, 255, 255)));
    values = new byte[] { 0x1, 0x2, 0x3, 0x2, 0x1 };
    imageData.setPixels(0, 1, values.length - OFFSET, values, OFFSET);
    imageData.getPixels(0, 1, IMAGE_DIMENSION, pixelData, 0);
    for (int i = 0; i < pixelData.length; i++) {
        if (i + OFFSET < values.length) {
            assertEquals(":c:", values[i + OFFSET], pixelData[i]);
        } else {
            assertEquals(":d:", 0, pixelData[i]);
        }
    }
    // test 4 bit
    imageData = new ImageData(IMAGE_DIMENSION, IMAGE_DIMENSION, 4, new PaletteData(new RGB(0, 0, 0), new RGB(255, 255, 255)));
    values = new byte[] { 0x1, 0x2, 0x3, 0x4, 0xF };
    imageData.setPixels(0, 1, values.length - OFFSET, values, OFFSET);
    imageData.getPixels(0, 1, IMAGE_DIMENSION, pixelData, 0);
    for (int i = 0; i < pixelData.length; i++) {
        if (i + OFFSET < values.length) {
            assertEquals(":e:", values[i + OFFSET], pixelData[i]);
        } else {
            assertEquals(":f:", 0, pixelData[i]);
        }
    }
    // test 8 bit
    imageData = new ImageData(IMAGE_DIMENSION, IMAGE_DIMENSION, 8, new PaletteData(new RGB(0, 0, 0), new RGB(255, 255, 255)));
    values = new byte[] { 0x1, 0x2, 0x3, 0xF, (byte) 0xFF };
    imageData.setPixels(0, 1, values.length - OFFSET, values, OFFSET);
    imageData.getPixels(0, 1, IMAGE_DIMENSION, pixelData, 0);
    for (int i = 0; i < pixelData.length; i++) {
        if (i + OFFSET < values.length) {
            assertEquals(":g:", values[i + OFFSET], pixelData[i]);
        } else {
            assertEquals(":h:", 0, pixelData[i]);
        }
    }
    // exception cases
    try {
        imageData.setPixels(0, 1, IMAGE_DIMENSION * IMAGE_DIMENSION, pixelData, OFFSET);
        fail("No exception thrown for putWidth out of bounds");
    } catch (IndexOutOfBoundsException e) {
    }
    try {
        imageData.setPixels(0, 1, IMAGE_DIMENSION, (byte[]) null, OFFSET);
        fail("No exception thrown for pixels == null");
    } catch (IllegalArgumentException e) {
        assertSWTProblem("Incorrect exception thrown for pixels == null", SWT.ERROR_NULL_ARGUMENT, e);
    }
    try {
        imageData.setPixels(-1, 1, IMAGE_DIMENSION, pixelData, OFFSET);
        fail("No exception thrown for x out of bounds");
    } catch (IllegalArgumentException e) {
        assertSWTProblem("Incorrect exception thrown for x out of bounds", SWT.ERROR_INVALID_ARGUMENT, e);
    }
    try {
        imageData.setPixels(IMAGE_DIMENSION, 1, IMAGE_DIMENSION, pixelData, OFFSET);
        fail("No exception thrown for x out of bounds");
    } catch (IllegalArgumentException e) {
        assertSWTProblem("Incorrect exception thrown for x out of bounds", SWT.ERROR_INVALID_ARGUMENT, e);
    }
    try {
        imageData.setPixels(0, -1, IMAGE_DIMENSION, pixelData, OFFSET);
        fail("No exception thrown for y out of bounds");
    } catch (IllegalArgumentException e) {
        assertSWTProblem("Incorrect exception thrown for y out of bounds", SWT.ERROR_INVALID_ARGUMENT, e);
    }
    try {
        imageData.setPixels(0, IMAGE_DIMENSION, IMAGE_DIMENSION, pixelData, OFFSET);
        fail("No exception thrown for y out of bounds");
    } catch (IllegalArgumentException e) {
        assertSWTProblem("Incorrect exception thrown for y out of bounds", SWT.ERROR_INVALID_ARGUMENT, e);
    }
    try {
        imageData.setPixels(0, 1, -1, pixelData, OFFSET);
        fail("No exception thrown for putWidth < 0");
    } catch (IllegalArgumentException e) {
        assertSWTProblem("Incorrect exception thrown for putWidth < 0", SWT.ERROR_INVALID_ARGUMENT, e);
    }
    imageData = new ImageData(IMAGE_DIMENSION, IMAGE_DIMENSION, 32, new PaletteData(0xFF0000, 0xFF00, 0xFF));
    try {
        imageData.setPixels(0, 1, IMAGE_DIMENSION, pixelData, OFFSET);
        fail("No exception thrown for invalid depth");
    } catch (SWTException e) {
        assertSWTProblem("Incorrect exception thrown for invalid depth", SWT.ERROR_UNSUPPORTED_DEPTH, e);
    }
}
Also used : PaletteData(org.eclipse.swt.graphics.PaletteData) SWTException(org.eclipse.swt.SWTException) ImageData(org.eclipse.swt.graphics.ImageData) RGB(org.eclipse.swt.graphics.RGB) Test(org.junit.Test)

Example 47 with PaletteData

use of org.eclipse.swt.graphics.PaletteData in project eclipse.platform.swt by eclipse.

the class Test_org_eclipse_swt_graphics_ImageData method test_ConstructorIIILorg_eclipse_swt_graphics_PaletteData.

@Test
public void test_ConstructorIIILorg_eclipse_swt_graphics_PaletteData() {
    try {
        new ImageData(-1, 1, 1, new PaletteData(new RGB(0, 0, 0)));
        fail("No exception thrown for width < 0");
    } catch (IllegalArgumentException e) {
    }
    try {
        new ImageData(1, -1, 1, new PaletteData(new RGB(0, 0, 0)));
        fail("No exception thrown for height < 0");
    } catch (IllegalArgumentException e) {
    }
    try {
        new ImageData(1, 1, 1, null, 0, new byte[] { 0, 0x4f, 0x4f, 0 });
        fail("No exception thrown for paletteData == null");
    } catch (IllegalArgumentException e) {
    }
    try {
        new ImageData(1, 1, 3, new PaletteData(new RGB(0, 0, 0)));
        fail("No exception thrown for unsupported depth");
    } catch (IllegalArgumentException e) {
    }
    int[] validDepths = { 1, 2, 4, 8, 16, 24, 32 };
    for (int i = 0; i < validDepths.length; i++) {
        new ImageData(1, 1, validDepths[i], new PaletteData(new RGB(0, 0, 0)));
    }
}
Also used : PaletteData(org.eclipse.swt.graphics.PaletteData) ImageData(org.eclipse.swt.graphics.ImageData) RGB(org.eclipse.swt.graphics.RGB) Test(org.junit.Test)

Example 48 with PaletteData

use of org.eclipse.swt.graphics.PaletteData in project eclipse.platform.swt by eclipse.

the class Test_org_eclipse_swt_graphics_ImageData method test_scaledToII.

@Test
public void test_scaledToII() {
    final int imageDimension = 8;
    RGB[] rgbs = new RGB[] { new RGB(0, 0, 0), new RGB(255, 255, 255) };
    byte[] pixelData = new byte[(imageDimension * imageDimension) / 8];
    pixelData[0] = 0x4F;
    imageData = new ImageData(imageDimension, imageDimension, 1, new PaletteData(rgbs), 1, pixelData);
    ImageData scaledImageData = imageData.scaledTo(-imageDimension, -imageDimension);
    byte[] scaledPixelData = new byte[imageDimension];
    scaledImageData.getPixels(0, imageDimension - 1, scaledPixelData.length, scaledPixelData, 0);
    byte[] expectedPixelData = new byte[] { 0x1, 0x1, 0x1, 0x1, 0, 0, 0x1, 0 };
    assertArrayEquals(":a:", expectedPixelData, scaledPixelData);
    scaledImageData = imageData.scaledTo(imageDimension * 10, imageDimension);
    scaledPixelData = new byte[imageDimension * 10];
    scaledImageData.getPixels(0, 0, scaledPixelData.length, scaledPixelData, 0);
    assertEquals(":b:", 0, scaledPixelData[0]);
    assertEquals(":c:", 0, scaledPixelData[1]);
    scaledImageData = imageData.scaledTo(imageDimension, imageDimension * 10);
    scaledPixelData = new byte[imageDimension];
    scaledImageData.getPixels(0, 0, scaledPixelData.length, scaledPixelData, 0);
    expectedPixelData = new byte[] { 0, 0x1, 0, 0, 0x1, 0x1, 0x1, 0x1 };
    assertArrayEquals(":d:", expectedPixelData, scaledPixelData);
}
Also used : PaletteData(org.eclipse.swt.graphics.PaletteData) ImageData(org.eclipse.swt.graphics.ImageData) RGB(org.eclipse.swt.graphics.RGB) Test(org.junit.Test)

Example 49 with PaletteData

use of org.eclipse.swt.graphics.PaletteData in project eclipse.platform.swt by eclipse.

the class Test_org_eclipse_swt_graphics_PaletteData method test_getRGBI.

@Test
public void test_getRGBI() {
    // indexed palette tests
    RGB[] rgbs = { new RGB(0, 0, 0), new RGB(255, 255, 255), new RGB(50, 100, 150) };
    PaletteData data = new PaletteData(rgbs);
    try {
        data.getRGB(rgbs.length);
        fail("No exception thrown for nonexistent pixel");
    } catch (IllegalArgumentException e) {
    }
    assertEquals(":a:", rgbs[rgbs.length - 1], data.getRGB(rgbs.length - 1));
    // direct palette tests
    RGB rgb = new RGB(0x32, 0x64, 0x96);
    data = new PaletteData(0xff0000, 0x00ff00, 0x0000ff);
    assertEquals(":b:", rgb, data.getRGB(0x326496));
}
Also used : PaletteData(org.eclipse.swt.graphics.PaletteData) RGB(org.eclipse.swt.graphics.RGB) Test(org.junit.Test)

Example 50 with PaletteData

use of org.eclipse.swt.graphics.PaletteData in project eclipse.platform.swt by eclipse.

the class Test_org_eclipse_swt_graphics_PaletteData method test_ConstructorIII.

@Test
public void test_ConstructorIII() {
    PaletteData data = new PaletteData(0, 0, 0);
    assertTrue(":a:", data.isDirect);
    data = new PaletteData(-1, -1, -1);
    assertTrue(":b:", data.isDirect);
    data = new PaletteData(0xff0000, 0x00ff00, 0x0000ff);
    assertTrue(":c:", data.isDirect);
}
Also used : PaletteData(org.eclipse.swt.graphics.PaletteData) Test(org.junit.Test)

Aggregations

PaletteData (org.eclipse.swt.graphics.PaletteData)59 ImageData (org.eclipse.swt.graphics.ImageData)49 RGB (org.eclipse.swt.graphics.RGB)48 Test (org.junit.Test)27 Image (org.eclipse.swt.graphics.Image)22 Point (org.eclipse.swt.graphics.Point)12 GC (org.eclipse.swt.graphics.GC)10 Color (org.eclipse.swt.graphics.Color)9 DirectColorModel (java.awt.image.DirectColorModel)8 IndexColorModel (java.awt.image.IndexColorModel)8 WritableRaster (java.awt.image.WritableRaster)8 Rectangle (org.eclipse.swt.graphics.Rectangle)8 SWTException (org.eclipse.swt.SWTException)7 BufferedImage (java.awt.image.BufferedImage)4 Cursor (org.eclipse.swt.graphics.Cursor)3 ColorModel (java.awt.image.ColorModel)2 PaintEvent (org.eclipse.swt.events.PaintEvent)2 PaintListener (org.eclipse.swt.events.PaintListener)2 Composite (org.eclipse.swt.widgets.Composite)2 Event (org.eclipse.swt.widgets.Event)2