All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.clickntap.tool.image.Mosaic Maven / Gradle / Ivy

There is a newer version: 1.30
Show newest version
package com.clickntap.tool.image;

import com.clickntap.utils.ImageUtils;

import java.awt.*;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;

public class Mosaic {

    private BufferedImage image;

    public static double colourDistance(Color e1, Color e2) {
        long rmean = ((long) e1.getRed() + (long) e2.getRed()) / 2;
        long r = (long) e1.getRed() - (long) e2.getRed();
        long g = (long) e1.getGreen() - (long) e2.getGreen();
        long b = (long) e1.getBlue() - (long) e2.getBlue();
        return Math.sqrt((((512 + rmean) * r * r) >> 8) + 4 * g * g + (((767 - rmean) * b * b) >> 8));
    }

    public List exec() {
        List map = new ArrayList();
        int i = 0;
        int j = 0;
        for (i = 0; i < image.getWidth(); i += image.getWidth() / 60) {
            for (j = 0; j < image.getHeight(); j += image.getHeight() / 60) {
                if (image.getRGB(i, j) == 0xFFFFFF) {
                    map.add(0);
                } else {
                    map.add(1);
                }
            }
        }
        return map;
    }

    public void setInput(String filename) throws Exception {
        image = ImageUtils.open(filename);
    }

    public void setInput(File file) throws Exception {
        image = ImageUtils.open(file);
    }

    public void setInput(InputStream in) throws Exception {
        image = ImageUtils.open(in);
    }

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy