这不是一个愚蠢的问题。比方说,我们只有很多黑色的png icons(超过100个),但是它们可能包含多个不相关的元素,例如:




我要实现的是将所有这些图形设置为颜色和automatically颜色(填充黑色内容),而其余参数保持不变(格式/分辨率)。是否应该应用任何库或方法来执行此任务?

谢谢

最佳答案

这是一个可以完成此操作的小程序:

public static void main(String[] args) {
    final String directoryPath = "C:\\images";
    final String outputPath = "C:\\images\\out";
    final int color = 0x00ff0000;
    File directory = new File(directoryPath);
    File[] files = directory.listFiles();

    if (files == null) {
        return;
    }

    for (File file : files) {
        String extension;

        int extensionIndex = file.getName().lastIndexOf('.');
        if (extensionIndex > 0) {
            extension = file.getName().substring(extensionIndex + 1);
        } else {
            extension = "bmp";
        }

        BufferedImage image;
        try {
            image = convert(ImageIO.read(file), BufferedImage.TYPE_INT_ARGB);
            for (int i = 0; i < image.getWidth(); i++) {
                for (int j = 0; j < image.getHeight(); j++) {
                    image.setRGB(i, j, image.getRGB(i, j) | color);
                }
            }

            File newFile = new File(outputPath + "\\" + file.getName());
            ImageIO.write(image, extension, newFile);
        } catch (IOException e) {
            // Handle
        }
    }
}


我使用了这篇文章的转换方法:How to convert between color models

关于java - 自动填色?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26434449/

10-11 20:04