/* (c) 2012 Christopher Sloetjes www.clamcompression.com REVISED BY ZYNASIS! still garbage quality code, but quite a bit faster. */ package genetic.demo; import java.awt.Color; import java.awt.Graphics; import java.awt.Polygon; import java.awt.image.BufferedImage; import java.io.Serializable; public class CompressedImage implements Serializable { private static final long serialVersionUID = 1L; public Triangle [] triangle=null; final BufferedImage image; int[][] imageData; public CompressedImage (BufferedImage image, int geneCount) { this.image=image; imageData = loadData(image); triangle = new Triangle [geneCount]; for (int i=0;i> 16) & 0x000000FF; int cgreen = (c >>8 ) & 0x000000FF; int cblue = (c) & 0x000000FF; int c2red = (c2 >> 16) & 0x000000FF; int c2green = (c2 >>8 ) & 0x000000FF; int c2blue = (c2) & 0x000000FF; result+=Math.abs(cred-c2red); result+=Math.abs(cgreen-c2green); result+=Math.abs(cblue-c2blue); } } return result; } Triangle t = null; public boolean mutate () { t = triangle[(Triangle.random.nextInt(triangle.length))]; return t.mutate(); } public void revert () { t.revert(); } }