mirror of
https://github.com/Stirling-Tools/Stirling-PDF.git
synced 2025-06-23 07:55:07 +00:00
83 lines
3.0 KiB
Java
83 lines
3.0 KiB
Java
package stirling.software.common.util;
|
|
|
|
import static org.junit.jupiter.api.Assertions.assertEquals;
|
|
import static org.junit.jupiter.api.Assertions.assertNotNull;
|
|
import static org.junit.jupiter.api.Assertions.assertTrue;
|
|
|
|
import java.awt.*;
|
|
import java.awt.image.BufferedImage;
|
|
|
|
import org.junit.jupiter.api.Test;
|
|
|
|
public class ImageProcessingUtilsTest {
|
|
|
|
@Test
|
|
void testConvertColorTypeToGreyscale() {
|
|
BufferedImage sourceImage = new BufferedImage(100, 100, BufferedImage.TYPE_INT_RGB);
|
|
fillImageWithColor(sourceImage, Color.RED);
|
|
|
|
BufferedImage convertedImage =
|
|
ImageProcessingUtils.convertColorType(sourceImage, "greyscale");
|
|
|
|
assertNotNull(convertedImage);
|
|
assertEquals(BufferedImage.TYPE_BYTE_GRAY, convertedImage.getType());
|
|
assertEquals(sourceImage.getWidth(), convertedImage.getWidth());
|
|
assertEquals(sourceImage.getHeight(), convertedImage.getHeight());
|
|
|
|
// Check if a pixel is correctly converted to greyscale
|
|
Color grey = new Color(convertedImage.getRGB(0, 0));
|
|
assertEquals(grey.getRed(), grey.getGreen());
|
|
assertEquals(grey.getGreen(), grey.getBlue());
|
|
}
|
|
|
|
@Test
|
|
void testConvertColorTypeToBlackWhite() {
|
|
BufferedImage sourceImage = new BufferedImage(100, 100, BufferedImage.TYPE_INT_RGB);
|
|
fillImageWithColor(sourceImage, Color.RED);
|
|
|
|
BufferedImage convertedImage =
|
|
ImageProcessingUtils.convertColorType(sourceImage, "blackwhite");
|
|
|
|
assertNotNull(convertedImage);
|
|
assertEquals(BufferedImage.TYPE_BYTE_BINARY, convertedImage.getType());
|
|
assertEquals(sourceImage.getWidth(), convertedImage.getWidth());
|
|
assertEquals(sourceImage.getHeight(), convertedImage.getHeight());
|
|
|
|
// Check if a pixel is converted correctly (binary image will be either black or white)
|
|
int rgb = convertedImage.getRGB(0, 0);
|
|
assertTrue(rgb == Color.BLACK.getRGB() || rgb == Color.WHITE.getRGB());
|
|
}
|
|
|
|
@Test
|
|
void testConvertColorTypeToFullColor() {
|
|
BufferedImage sourceImage = new BufferedImage(100, 100, BufferedImage.TYPE_INT_RGB);
|
|
fillImageWithColor(sourceImage, Color.RED);
|
|
|
|
BufferedImage convertedImage =
|
|
ImageProcessingUtils.convertColorType(sourceImage, "fullcolor");
|
|
|
|
assertNotNull(convertedImage);
|
|
assertEquals(sourceImage, convertedImage);
|
|
}
|
|
|
|
@Test
|
|
void testConvertColorTypeInvalid() {
|
|
BufferedImage sourceImage = new BufferedImage(100, 100, BufferedImage.TYPE_INT_RGB);
|
|
fillImageWithColor(sourceImage, Color.RED);
|
|
|
|
BufferedImage convertedImage =
|
|
ImageProcessingUtils.convertColorType(sourceImage, "invalidtype");
|
|
|
|
assertNotNull(convertedImage);
|
|
assertEquals(sourceImage, convertedImage);
|
|
}
|
|
|
|
private void fillImageWithColor(BufferedImage image, Color color) {
|
|
for (int y = 0; y < image.getHeight(); y++) {
|
|
for (int x = 0; x < image.getWidth(); x++) {
|
|
image.setRGB(x, y, color.getRGB());
|
|
}
|
|
}
|
|
}
|
|
}
|