Search in sources :

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

@Test
public void test_getPixelsIII$II() {
    final int SIZE = 20;
    final int GET_WIDTH = 10;
    final int OFFSET = 10;
    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)));
    imageData.getPixels(0, 1, GET_WIDTH, pixelData, OFFSET);
    for (int i = 0; i < pixelData.length; i++) {
        assertEquals(":a:", 0, pixelData[i]);
    }
    int[] values = new int[] { 0x1, 0x1, 0x1, 0x1, 0x1 };
    imageData.setPixels(0, 1, values.length, values, 0);
    imageData.getPixels(0, 1, GET_WIDTH, pixelData, OFFSET);
    for (int i = 0; i < pixelData.length; i++) {
        if (i < OFFSET) {
            assertEquals(":b:", 0, pixelData[i]);
        } else if (i < OFFSET + values.length) {
            assertEquals(":c:", values[i - OFFSET], pixelData[i]);
        } else if (i < OFFSET + GET_WIDTH) {
            assertEquals(":d:", 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)));
    imageData.getPixels(0, 1, GET_WIDTH, pixelData, OFFSET);
    for (int i = 0; i < pixelData.length; i++) {
        assertEquals(":e:", 0, pixelData[i]);
    }
    values = new int[] { 0x1, 0x2, 0x3, 0x2, 0x1 };
    imageData.setPixels(0, 1, values.length, values, 0);
    imageData.getPixels(0, 1, GET_WIDTH, pixelData, OFFSET);
    for (int i = 0; i < pixelData.length; i++) {
        if (i < OFFSET) {
            assertEquals(":f:", 0, pixelData[i]);
        } else if (i < OFFSET + values.length) {
            assertEquals(":g:", values[i - OFFSET], pixelData[i]);
        } else if (i < OFFSET + GET_WIDTH) {
            assertEquals(":h:", 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)));
    imageData.getPixels(0, 1, GET_WIDTH, pixelData, OFFSET);
    for (int i = 0; i < pixelData.length; i++) {
        assertEquals(":i:", 0, pixelData[i]);
    }
    values = new int[] { 0x1, 0x2, 0x3, 0x4, 0xF };
    imageData.setPixels(0, 1, values.length, values, 0);
    imageData.getPixels(0, 1, GET_WIDTH, pixelData, OFFSET);
    for (int i = 0; i < pixelData.length; i++) {
        if (i < OFFSET) {
            assertEquals(":j:", 0, pixelData[i]);
        } else if (i < OFFSET + values.length) {
            assertEquals(":k:", values[i - OFFSET], pixelData[i]);
        } else if (i < OFFSET + GET_WIDTH) {
            assertEquals(":l:", 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)));
    imageData.getPixels(0, 1, GET_WIDTH, pixelData, OFFSET);
    for (int i = 0; i < pixelData.length; i++) {
        assertEquals(":m:", 0, pixelData[i]);
    }
    values = new int[] { 0x1, 0x2, 0x3, 0xF, 0xFF };
    imageData.setPixels(0, 1, values.length, values, 0);
    imageData.getPixels(0, 1, GET_WIDTH, pixelData, OFFSET);
    for (int i = 0; i < pixelData.length; i++) {
        if (i < OFFSET) {
            assertEquals(":n:", 0, pixelData[i]);
        } else if (i < OFFSET + values.length) {
            assertEquals(":o:", values[i - OFFSET], pixelData[i]);
        } else if (i < OFFSET + GET_WIDTH) {
            assertEquals(":p:", 0, pixelData[i]);
        }
    }
    // test 16 bit
    imageData = new ImageData(IMAGE_DIMENSION, IMAGE_DIMENSION, 16, new PaletteData(0xF800, 0x7E0, 0x1F));
    imageData.getPixels(0, 1, GET_WIDTH, pixelData, OFFSET);
    for (int i = 0; i < pixelData.length; i++) {
        assertEquals(":q:", 0, pixelData[i]);
    }
    values = new int[] { 0, 0x2, 0xF, 0xFF, 0xFFAA };
    imageData.setPixels(0, 1, values.length, values, 0);
    imageData.getPixels(0, 1, GET_WIDTH, pixelData, OFFSET);
    for (int i = 0; i < pixelData.length; i++) {
        if (i < OFFSET) {
            assertEquals(":r:", 0, pixelData[i]);
        } else if (i < OFFSET + values.length) {
            assertEquals(":s:", values[i - OFFSET], pixelData[i]);
        } else if (i < OFFSET + GET_WIDTH) {
            assertEquals(":t:", 0, pixelData[i]);
        }
    }
    // test 24 bit
    imageData = new ImageData(IMAGE_DIMENSION, IMAGE_DIMENSION, 24, new PaletteData(0xFF0000, 0xFF00, 0xFF));
    imageData.getPixels(0, 1, GET_WIDTH, pixelData, OFFSET);
    for (int i = 0; i < pixelData.length; i++) {
        assertEquals(":u:", 0, pixelData[i]);
    }
    values = new int[] { 0, 0xFF, 0xFFAA, 0xFF00AA };
    imageData.setPixels(0, 1, values.length, values, 0);
    imageData.getPixels(0, 1, GET_WIDTH, pixelData, OFFSET);
    for (int i = 0; i < pixelData.length; i++) {
        if (i < OFFSET) {
            assertEquals(":v:", 0, pixelData[i]);
        } else if (i < OFFSET + values.length) {
            assertEquals(":w:", values[i - OFFSET], pixelData[i]);
        } else if (i < OFFSET + GET_WIDTH) {
            assertEquals(":x:", 0, pixelData[i]);
        }
    }
    // test 32 bit
    imageData = new ImageData(IMAGE_DIMENSION, IMAGE_DIMENSION, 32, new PaletteData(0xFF000000, 0xFF00, 0xFF));
    imageData.getPixels(0, 1, GET_WIDTH, pixelData, OFFSET);
    for (int i = 0; i < pixelData.length; i++) {
        assertEquals(":y:", 0, pixelData[i]);
    }
    values = new int[] { 0, 0xFF, 0xFFAA, 0xFF00AA00 };
    imageData.setPixels(0, 1, values.length, values, 0);
    imageData.getPixels(0, 1, GET_WIDTH, pixelData, OFFSET);
    for (int i = 0; i < pixelData.length; i++) {
        if (i < OFFSET) {
            assertEquals(":z:", 0, pixelData[i]);
        } else if (i < OFFSET + values.length) {
            assertEquals(":aa:", values[i - OFFSET], pixelData[i]);
        } else if (i < OFFSET + GET_WIDTH) {
            assertEquals(":ab:", 0, pixelData[i]);
        }
    }
    // exception cases
    try {
        imageData.getPixels(0, 1, GET_WIDTH * GET_WIDTH, pixelData, OFFSET);
        fail("No exception thrown for getWidth out of bounds");
    } catch (IndexOutOfBoundsException e) {
    }
    try {
        imageData.getPixels(0, 1, GET_WIDTH, (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.getPixels(-1, 1, GET_WIDTH, 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.getPixels(IMAGE_DIMENSION, 1, GET_WIDTH, 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.getPixels(0, -1, GET_WIDTH, 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.getPixels(0, IMAGE_DIMENSION, GET_WIDTH, 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.getPixels(0, 1, -1, pixelData, OFFSET);
        fail("No exception thrown for getWidth < 0");
    } catch (IllegalArgumentException e) {
        assertSWTProblem("Incorrect exception thrown for getWidth < 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 12 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_PaletteDataI$B.

@Test
public void test_ConstructorIIILorg_eclipse_swt_graphics_PaletteDataI$B() {
    byte[] validData = new byte[] { 0, 0x4f, 0x4f, 0 };
    try {
        new ImageData(-1, 1, 1, new PaletteData(new RGB(0, 0, 0)), 1, validData);
        fail("No exception thrown for width < 0");
    } catch (IllegalArgumentException e) {
    }
    try {
        new ImageData(1, -1, 1, new PaletteData(new RGB(0, 0, 0)), 1, validData);
        fail("No exception thrown for height < 0");
    } catch (IllegalArgumentException e) {
    }
    try {
        new ImageData(1, 1, 1, null, 0, validData);
        fail("No exception thrown for paletteData == null");
    } catch (IllegalArgumentException e) {
    }
    try {
        new ImageData(1, 1, 1, new PaletteData(new RGB(0, 0, 0)), 1, null);
        fail("No exception thrown for data == null");
    } catch (IllegalArgumentException e) {
    }
    try {
        new ImageData(1, 1, 1, new PaletteData(new RGB(0, 0, 0)), 1, new byte[] {});
        fail("No exception thrown for data array too small");
    } catch (IllegalArgumentException e) {
    }
    try {
        new ImageData(1, 1, 16, new PaletteData(new RGB(0, 0, 0)), 1, new byte[] { 0x4f });
        fail("No exception thrown for data array too small");
    } catch (IllegalArgumentException e) {
    }
    try {
        new ImageData(1, 1, 32, new PaletteData(new RGB(0, 0, 0)), 1, new byte[] { 0x4f, 0x4f });
        fail("No exception thrown for data array too small");
    } catch (IllegalArgumentException e) {
    }
    try {
        new ImageData(2, 2, 8, new PaletteData(new RGB(0, 0, 0)), 1, new byte[] { 0x4f, 0x4f, 0x4f });
        fail("No exception thrown for data array too small");
    } catch (IllegalArgumentException e) {
    }
    try {
        new ImageData(1, 1, 3, new PaletteData(new RGB(0, 0, 0)), 1, validData);
        fail("No exception thrown for unsupported depth");
    } catch (IllegalArgumentException e) {
    }
    // verify all valid depths
    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)), 1, validData);
    }
    // verify no divide by zero exception if scanlinePad == 0
    try {
        new ImageData(1, 1, 8, new PaletteData(new RGB(0, 0, 0)), 0, validData);
        fail("No exception thrown for scanlinePad == 0");
    } catch (IllegalArgumentException 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 13 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_getPixelsIII$BI.

@Test
public void test_getPixelsIII$BI() {
    final int SIZE = 20;
    final int GET_WIDTH = 10;
    final int OFFSET = 10;
    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)));
    imageData.getPixels(0, 1, GET_WIDTH, pixelData, OFFSET);
    for (int i = 0; i < pixelData.length; i++) {
        assertEquals(":a:", 0, pixelData[i]);
    }
    byte[] values = new byte[] { 0x1, 0x1, 0x1, 0x1, 0x1 };
    imageData.setPixels(0, 1, values.length, values, 0);
    imageData.getPixels(0, 1, GET_WIDTH, pixelData, OFFSET);
    for (int i = 0; i < pixelData.length; i++) {
        if (i < OFFSET) {
            assertEquals(":b:", 0, pixelData[i]);
        } else if (i < OFFSET + values.length) {
            assertEquals(":c:", values[i - OFFSET], pixelData[i]);
        } else if (i < OFFSET + GET_WIDTH) {
            assertEquals(":d:", 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)));
    imageData.getPixels(0, 1, GET_WIDTH, pixelData, OFFSET);
    for (int i = 0; i < pixelData.length; i++) {
        assertEquals(":e:", 0, pixelData[i]);
    }
    values = new byte[] { 0x1, 0x2, 0x3, 0x2, 0x1 };
    imageData.setPixels(0, 1, values.length, values, 0);
    imageData.getPixels(0, 1, GET_WIDTH, pixelData, OFFSET);
    for (int i = 0; i < pixelData.length; i++) {
        if (i < OFFSET) {
            assertEquals(":f:", 0, pixelData[i]);
        } else if (i < OFFSET + values.length) {
            assertEquals(":g:", values[i - OFFSET], pixelData[i]);
        } else if (i < OFFSET + GET_WIDTH) {
            assertEquals(":h:", 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)));
    imageData.getPixels(0, 1, GET_WIDTH, pixelData, OFFSET);
    for (int i = 0; i < pixelData.length; i++) {
        assertEquals(":i:", 0, pixelData[i]);
    }
    values = new byte[] { 0x1, 0x2, 0x3, 0x4, 0xF };
    imageData.setPixels(0, 1, values.length, values, 0);
    imageData.getPixels(0, 1, GET_WIDTH, pixelData, OFFSET);
    for (int i = 0; i < pixelData.length; i++) {
        if (i < OFFSET) {
            assertEquals(":j:", 0, pixelData[i]);
        } else if (i < OFFSET + values.length) {
            assertEquals(":k:", values[i - OFFSET], pixelData[i]);
        } else if (i < OFFSET + GET_WIDTH) {
            assertEquals(":l:", 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)));
    imageData.getPixels(0, 1, GET_WIDTH, pixelData, OFFSET);
    for (int i = 0; i < pixelData.length; i++) {
        assertEquals(":m:", 0, pixelData[i]);
    }
    values = new byte[] { 0x1, 0x2, 0x3, 0xF, (byte) 0xFF };
    imageData.setPixels(0, 1, values.length, values, 0);
    imageData.getPixels(0, 1, GET_WIDTH, pixelData, OFFSET);
    for (int i = 0; i < pixelData.length; i++) {
        if (i < OFFSET) {
            assertEquals(":n:", 0, pixelData[i]);
        } else if (i < OFFSET + values.length) {
            assertEquals(":o:", values[i - OFFSET], pixelData[i]);
        } else if (i < OFFSET + GET_WIDTH) {
            assertEquals(":p:", 0, pixelData[i]);
        }
    }
    // exception cases
    try {
        imageData.getPixels(0, 1, GET_WIDTH * GET_WIDTH, pixelData, OFFSET);
        fail("No exception thrown for getWidth out of bounds");
    } catch (IndexOutOfBoundsException e) {
    }
    try {
        imageData.getPixels(0, 1, GET_WIDTH, (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.getPixels(-1, 1, GET_WIDTH, 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.getPixels(IMAGE_DIMENSION, 1, GET_WIDTH, 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.getPixels(0, -1, GET_WIDTH, 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.getPixels(0, IMAGE_DIMENSION, GET_WIDTH, 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.getPixels(0, 1, -1, pixelData, OFFSET);
        fail("No exception thrown for getWidth < 0");
    } catch (IllegalArgumentException e) {
        assertSWTProblem("Incorrect exception thrown for getWidth < 0", SWT.ERROR_INVALID_ARGUMENT, e);
    }
    imageData = new ImageData(IMAGE_DIMENSION, IMAGE_DIMENSION, 32, new PaletteData(0xFF0000, 0xFF00, 0xFF));
    try {
        imageData.getPixels(0, 1, GET_WIDTH, 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 14 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_getRGBs.

@Test
public void test_getRGBs() {
    assertNull(":a:", imageData.getRGBs());
    RGB[] rgbs = new RGB[] { new RGB(0, 0, 0), new RGB(255, 255, 255) };
    imageData = new ImageData(IMAGE_DIMENSION, IMAGE_DIMENSION, 8, new PaletteData(rgbs));
    assertArrayEquals(":b:", rgbs, imageData.getRGBs());
}
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 15 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_getRGBs.

@Test
public void test_getRGBs() {
    // indexed palette tests
    RGB[] rgbs = { new RGB(0, 0, 0), new RGB(255, 255, 255) };
    PaletteData data = new PaletteData(rgbs);
    assertArrayEquals(":a:", rgbs, data.getRGBs());
    // direct palette tests
    data = new PaletteData(0xff0000, 0x00ff00, 0x0000ff);
    assertNull(":b:", data.getRGBs());
}
Also used : PaletteData(org.eclipse.swt.graphics.PaletteData) 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