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);
}
}
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)));
}
}
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);
}
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));
}
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);
}
Aggregations