1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.apache.commons.imaging.formats.tiff.photometricinterpreters;
18
19 import java.io.IOException;
20
21 import org.apache.commons.imaging.ImagingException;
22 import org.apache.commons.imaging.common.ImageBuilder;
23
24 public class PhotometricInterpreterBiLevel extends PhotometricInterpreter {
25 private final boolean invert;
26
27
28
29 public PhotometricInterpreterBiLevel(final int samplesPerPixel, final int[] bitsPerSample, final int predictor, final int width, final int height,
30 final boolean invert) {
31 super(samplesPerPixel, bitsPerSample, predictor, width, height);
32
33 this.invert = invert;
34
35 }
36
37 @Override
38 public void interpretPixel(final ImageBuilder imageBuilder, final int[] samples, final int x, final int y) throws ImagingException, IOException {
39 int sample = samples[0];
40
41 if (invert) {
42 sample = 255 - sample;
43 }
44
45 final int red = sample;
46 final int green = sample;
47 final int blue = sample;
48
49 final int alpha = 0xff;
50 final int rgb = alpha << 24 | red << 16 | green << 8 | blue << 0;
51
52 imageBuilder.setRgb(x, y, rgb);
53 }
54 }