自动填色?

时间:2014-10-17 22:49:40

标签: java android graphics colors

有一些不是一个愚蠢的问题..让我们说,我们有很多只有黑色png icons(超过一百),但它们可能包含多个未连接的元素,如:

enter image description here enter image description here

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

由于

1 个答案:

答案 0 :(得分:1)

这是一个可以做到的小程序:

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