mirror of
https://github.com/Stirling-Tools/Stirling-PDF.git
synced 2025-06-23 16:05:09 +00:00

# Description of Changes Introduced a new `common` module for shared libs and commonly used classes. See the screenshot below for the file structure and classes that have been moved. --- <img width="452" alt="Screenshot 2025-05-22 at 11 46 56" src="https://github.com/user-attachments/assets/c9badabc-48f9-4079-b83e-7cfde0fb840f" /> <img width="470" alt="Screenshot 2025-05-22 at 11 47 30" src="https://github.com/user-attachments/assets/e8315b09-2e78-4c50-b9de-4dd9b9b0ecb1" /> ## Checklist ### General - [x] I have read the [Contribution Guidelines](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/CONTRIBUTING.md) - [x] I have read the [Stirling-PDF Developer Guide](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/DeveloperGuide.md) (if applicable) - [x] I have read the [How to add new languages to Stirling-PDF](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/HowToAddNewLanguage.md) (if applicable) - [x] I have performed a self-review of my own code - [x] My changes generate no new warnings ### Documentation - [ ] I have updated relevant docs on [Stirling-PDF's doc repo](https://github.com/Stirling-Tools/Stirling-Tools.github.io/blob/main/docs/) (if functionality has heavily changed) - [ ] I have read the section [Add New Translation Tags](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/HowToAddNewLanguage.md#add-new-translation-tags) (for new translation tags only) ### UI Changes (if applicable) - [x] Screenshots or videos demonstrating the UI changes are attached (e.g., as comments or direct attachments in the PR) ### Testing (if applicable) - [x] I have tested my changes locally. Refer to the [Testing Guide](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/DeveloperGuide.md#6-testing) for more details.
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());
|
|
}
|
|
}
|
|
}
|
|
}
|