X-Git-Url: http://www2.svjatoslav.eu/gitweb/?p=imagesqueeze.git;a=blobdiff_plain;f=src%2Fmain%2Fjava%2Feu%2Fsvjatoslav%2Fimagesqueeze%2Fcodec%2FOperatingContext.java;fp=src%2Fmain%2Fjava%2Feu%2Fsvjatoslav%2Fimagesqueeze%2Fcodec%2FOperatingContext.java;h=e96d610ffd5e98ff7b6038e2fc7adbdfde05d15c;hp=bac16305552d9c7db9892bad24732a81dc3882a8;hb=4bcffe8896c08c9f60b2707da71bb39a64618d93;hpb=c7d0b8e1723045c0df086d9214a35f54db47684c diff --git a/src/main/java/eu/svjatoslav/imagesqueeze/codec/OperatingContext.java b/src/main/java/eu/svjatoslav/imagesqueeze/codec/OperatingContext.java index bac1630..e96d610 100755 --- a/src/main/java/eu/svjatoslav/imagesqueeze/codec/OperatingContext.java +++ b/src/main/java/eu/svjatoslav/imagesqueeze/codec/OperatingContext.java @@ -1,3 +1,12 @@ +/* + * Imagesqueeze - Image codec optimized for photos. + * Copyright (C) 2012, Svjatoslav Agejenko, svjatoslav@svjatoslav.eu + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of version 2 of the GNU General Public License + * as published by the Free Software Foundation. + */ + package eu.svjatoslav.imagesqueeze.codec; public class OperatingContext { @@ -7,45 +16,49 @@ public class OperatingContext { byte[] uMap; byte[] vMap; ColorStats colorStats = new ColorStats(); - - public OperatingContext(){ + + public OperatingContext() { } - public void initialize(Image image, byte [] brightnessMap, byte [] colornessMap, byte [] colorMap){ - this.image = image; - this.yMap = brightnessMap; - this.uMap = colornessMap; - this.vMap = colorMap; - - colorStats.reset(); + public int getURange(final int index) { + final int colorness = ImageEncoder.byteToInt(uMap[index]); + return Math.abs(colorness - colorStats.getAverageU()); } - - public void measureNeighborEncode(int x, int y){ - if ((y >= 0) && (y < image.metaData.height) && (x >= 0) && (x < image.metaData.width)){ - - int neighborIndex = y * image.metaData.width + x; - - colorStats.ySum = colorStats.ySum + ImageEncoder.byteToInt(yMap[neighborIndex]); - colorStats.uSum = colorStats.uSum + ImageEncoder.byteToInt(uMap[neighborIndex]); - colorStats.vSum = colorStats.vSum + ImageEncoder.byteToInt(vMap[neighborIndex]); - colorStats.pixelCount++; - } + + public int getVRange(final int index) { + final int color = ImageEncoder.byteToInt(vMap[index]); + return Math.abs(color - colorStats.getAverageV()); } - public int getYRange(int index){ - int brightness = ImageEncoder.byteToInt(yMap[index]); - return Math.abs(brightness - colorStats.getAverageY()); + public int getYRange(final int index) { + final int brightness = ImageEncoder.byteToInt(yMap[index]); + return Math.abs(brightness - colorStats.getAverageY()); } - public int getURange(int index){ - int colorness = ImageEncoder.byteToInt(uMap[index]); - return Math.abs(colorness - colorStats.getAverageU()); + public void initialize(final Image image, final byte[] brightnessMap, + final byte[] colornessMap, final byte[] colorMap) { + this.image = image; + yMap = brightnessMap; + uMap = colornessMap; + vMap = colorMap; + + colorStats.reset(); } - public int getVRange(int index){ - int color = ImageEncoder.byteToInt(vMap[index]); - return Math.abs(color - colorStats.getAverageV()); + public void measureNeighborEncode(final int x, final int y) { + if ((y >= 0) && (y < image.metaData.height) && (x >= 0) + && (x < image.metaData.width)) { + + final int neighborIndex = (y * image.metaData.width) + x; + + colorStats.ySum = colorStats.ySum + + ImageEncoder.byteToInt(yMap[neighborIndex]); + colorStats.uSum = colorStats.uSum + + ImageEncoder.byteToInt(uMap[neighborIndex]); + colorStats.vSum = colorStats.vSum + + ImageEncoder.byteToInt(vMap[neighborIndex]); + colorStats.pixelCount++; + } } - }