Search in sources :

Example 41 with PaletteData

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

the class Test_org_eclipse_swt_graphics_Image method test_equalsLjava_lang_Object.

@Test
public void test_equalsLjava_lang_Object() {
    Image image = null;
    Image image1 = null;
    try {
        image = new Image(display, 10, 10);
        image1 = image;
        assertFalse(":a:", image.equals(null));
        assertTrue(":b:", image.equals(image1));
        ImageData imageData = new ImageData(10, 10, 1, new PaletteData(new RGB(0, 0, 0)));
        image.dispose();
        image = new Image(display, imageData);
        image1 = new Image(display, imageData);
        assertFalse(":c:", image.equals(image1));
    } finally {
        image.dispose();
        image1.dispose();
    }
    // ImageFileNameProvider
    try {
        image = new Image(display, imageFileNameProvider);
        image1 = image;
        assertFalse(":d:", image.equals(null));
        assertTrue(":e:", image.equals(image1));
        image1 = new Image(display, imageFileNameProvider);
        assertTrue(":f:", image.equals(image1));
    } finally {
        image.dispose();
        image1.dispose();
    }
    try {
        image = new Image(display, imageFileNameProvider);
        image1 = image;
        assertFalse(":d:", image.equals(null));
        assertTrue(":e:", image.equals(image1));
        image1 = new Image(display, imageFileNameProvider);
        assertTrue(":f:", image.equals(image1));
    } finally {
        image.dispose();
        image1.dispose();
    }
    // ImageDataProvider
    try {
        image = new Image(display, imageDataProvider);
        image1 = image;
        assertFalse(":g:", image.equals(null));
        assertTrue(":h:", image.equals(image1));
        image1 = new Image(display, imageDataProvider);
        assertTrue(":i:", image.equals(image1));
    } finally {
        image.dispose();
        image1.dispose();
    }
}
Also used : PaletteData(org.eclipse.swt.graphics.PaletteData) ImageData(org.eclipse.swt.graphics.ImageData) Image(org.eclipse.swt.graphics.Image) RGB(org.eclipse.swt.graphics.RGB) Test(org.junit.Test)

Example 42 with PaletteData

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

the class Test_org_eclipse_swt_graphics_Image method getImageData2.

/*
 * Verify Image.getImageData returns pixels with the same RGB value as the
 * source image. This test only makes sense with depth of 24 and 32 bits.
 */
void getImageData2(int depth, PaletteData palette) {
    int width = 10;
    int height = 10;
    Color color = new Color(display, 0, 0xff, 0);
    RGB colorRGB = color.getRGB();
    ImageData imageData = new ImageData(width, height, depth, palette);
    Image image = new Image(display, imageData);
    GC gc = new GC(image);
    gc.setBackground(color);
    gc.setForeground(color);
    gc.fillRectangle(0, 0, 10, 10);
    ImageData newData = image.getImageData();
    PaletteData newPalette = newData.palette;
    for (int i = 0; i < width; i++) {
        for (int j = 0; j < height; j++) {
            int pixel = newData.getPixel(i, j);
            RGB rgb = newPalette.getRGB(pixel);
            assertTrue("rgb.equals(colorRGB)", rgb.equals(colorRGB));
        }
    }
    color.dispose();
    gc.dispose();
    image.dispose();
}
Also used : PaletteData(org.eclipse.swt.graphics.PaletteData) ImageData(org.eclipse.swt.graphics.ImageData) Color(org.eclipse.swt.graphics.Color) RGB(org.eclipse.swt.graphics.RGB) Image(org.eclipse.swt.graphics.Image) GC(org.eclipse.swt.graphics.GC)

Example 43 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$II.

@Test
public void test_setPixelsIII$II() {
    final int SIZE = 20;
    final int OFFSET = 1;
    int[] pixelData = new int[SIZE];
    // test 1 bit
    imageData = new ImageData(IMAGE_DIMENSION, IMAGE_DIMENSION, 1, new PaletteData(new RGB(0, 0, 0), new RGB(255, 255, 255)));
    int[] values = new int[] { 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 int[] { 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 int[] { 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 int[] { 0x1, 0x2, 0x3, 0xF, 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]);
        }
    }
    // test 16 bit
    imageData = new ImageData(IMAGE_DIMENSION, IMAGE_DIMENSION, 16, new PaletteData(0xF800, 0x7E0, 0x1F));
    values = new int[] { 0, 0x2, 0xF, 0xFF, 0xFFAA };
    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(":i:", values[i + OFFSET], pixelData[i]);
        } else {
            assertEquals(":j:", 0, pixelData[i]);
        }
    }
    // test 24 bit
    imageData = new ImageData(IMAGE_DIMENSION, IMAGE_DIMENSION, 24, new PaletteData(0xFF0000, 0xFF00, 0xFF));
    values = new int[] { 0, 0xFF, 0xFFAA, 0xFF00AA };
    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(":k:", values[i + OFFSET], pixelData[i]);
        } else {
            assertEquals(":l:", 0, pixelData[i]);
        }
    }
    // test 32 bit
    imageData = new ImageData(IMAGE_DIMENSION, IMAGE_DIMENSION, 32, new PaletteData(0xFF000000, 0xFF00, 0xFF));
    values = new int[] { 0, 0xFF, 0xFFAA, 0xFF00AA00 };
    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(":m:", values[i + OFFSET], pixelData[i]);
        } else {
            assertEquals(":n:", 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, (int[]) 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);
    }
}
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 44 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 45 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)

Aggregations

PaletteData (org.eclipse.swt.graphics.PaletteData)57 ImageData (org.eclipse.swt.graphics.ImageData)47 RGB (org.eclipse.swt.graphics.RGB)46 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 ColorModel (java.awt.image.ColorModel)2 PaintEvent (org.eclipse.swt.events.PaintEvent)2 PaintListener (org.eclipse.swt.events.PaintListener)2 Cursor (org.eclipse.swt.graphics.Cursor)2 Composite (org.eclipse.swt.widgets.Composite)2 Event (org.eclipse.swt.widgets.Event)2