1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.apache.commons.imaging.palette;
18
19 import static org.junit.jupiter.api.Assertions.assertEquals;
20
21 import java.awt.image.BufferedImage;
22 import java.util.LinkedList;
23 import java.util.List;
24
25 import org.apache.commons.imaging.ImagingException;
26 import org.junit.jupiter.api.Test;
27
28
29
30
31 public class DitheringTest {
32
33 @Test
34 public void testApplyFloydSteinbergDitheringWithNonNullOne() throws ImagingException {
35 final BufferedImage bufferedImage = new BufferedImage(8, 8, 8);
36 bufferedImage.setRGB(2, 2, 2);
37 final List<ColorSpaceSubset> linkedList = new LinkedList<>();
38 final ColorSpaceSubset colorSpaceSubset = new ColorSpaceSubset(-234, -352);
39 colorSpaceSubset.rgb = 8;
40 linkedList.add(colorSpaceSubset);
41 final QuantizedPalette quantizedPalette = new QuantizedPalette(linkedList, 8);
42 Dithering.applyFloydSteinbergDithering(bufferedImage, quantizedPalette);
43
44 assertEquals(-16777208, bufferedImage.getRGB(0, 0));
45 assertEquals(-16777208, bufferedImage.getRGB(1, 1));
46 assertEquals(-16777208, bufferedImage.getRGB(2, 1));
47 assertEquals(-16777208, bufferedImage.getRGB(2, 2));
48 }
49
50 @Test
51 public void testApplyFloydSteinbergDitheringWithNonNullTwo() throws ImagingException {
52 final BufferedImage bufferedImage = new BufferedImage(3, 3, 3);
53 bufferedImage.setRGB(1, 2, 4);
54 final List<ColorSpaceSubset> linkedList = new LinkedList<>();
55 final ColorSpaceSubset colorSpaceSubset = new ColorSpaceSubset(-234, -352);
56 linkedList.add(colorSpaceSubset);
57 final QuantizedPalette quantizedPalette = new QuantizedPalette(linkedList, 3);
58 Dithering.applyFloydSteinbergDithering(bufferedImage, quantizedPalette);
59
60 assertEquals(-1, bufferedImage.getRGB(0, 0));
61 assertEquals(-1, bufferedImage.getRGB(1, 1));
62 assertEquals(-1, bufferedImage.getRGB(2, 1));
63 assertEquals(-1, bufferedImage.getRGB(2, 2));
64 }
65
66 }