[Polycasso-commit] SF.net SVN: polycasso:[26] trunk/polycasso/src/com/mebigfatguy/polycasso/ Feedba
Brought to you by:
dbrosius
|
From: <dbr...@us...> - 2009-11-24 05:09:46
|
Revision: 26
http://polycasso.svn.sourceforge.net/polycasso/?rev=26&view=rev
Author: dbrosius
Date: 2009-11-24 05:09:39 +0000 (Tue, 24 Nov 2009)
Log Message:
-----------
separate out feedback into it's own class
Added Paths:
-----------
trunk/polycasso/src/com/mebigfatguy/polycasso/Feedback.java
Added: trunk/polycasso/src/com/mebigfatguy/polycasso/Feedback.java
===================================================================
--- trunk/polycasso/src/com/mebigfatguy/polycasso/Feedback.java (rev 0)
+++ trunk/polycasso/src/com/mebigfatguy/polycasso/Feedback.java 2009-11-24 05:09:39 UTC (rev 26)
@@ -0,0 +1,67 @@
+/*
+ * polycasso - Cubism Artwork generator
+ * Copyright 2009 MeBigFatGuy.com
+ * Copyright 2009 Dave Brosius
+ * Inspired by work by Roger Alsing
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and limitations
+ * under the License.
+ */
+package com.mebigfatguy.polycasso;
+
+import java.awt.image.BufferedImage;
+import java.awt.image.DataBufferByte;
+import java.awt.image.WritableRaster;
+
+public class Feedback {
+
+ private byte[] targetBuffer;
+ private int size;
+
+ public Feedback(BufferedImage targetImage) {
+ WritableRaster raster = targetImage.getRaster();
+ DataBufferByte dbb = (DataBufferByte)raster.getDataBuffer();
+ targetBuffer = dbb.getData();
+ size = dbb.getSize();
+ }
+
+ public double calculateDelta(BufferedImage testImage) {
+ WritableRaster raster = testImage.getRaster();
+ DataBufferByte dbb = (DataBufferByte)raster.getDataBuffer();
+ byte[] testBuffer = dbb.getData();
+
+ double error = 0.0;
+
+ //index 0 is alpha, start at 1 (blue)
+ for (int i = 1; i < size; i++) {
+ int blue1 = targetBuffer[i] & 0x0FF;
+ int blue2 = testBuffer[i++] & 0x0FF;
+ double blueError = blue1 - blue2;
+ blueError *= blueError;
+
+ int green1 = targetBuffer[i] & 0x0FF;
+ int green2 = testBuffer[i++] & 0x0FF;
+ double greenError = green1 - green2;
+ greenError *= greenError;
+
+ int red1 = targetBuffer[i] & 0x0FF;
+ int red2 = testBuffer[i++] & 0x0FF;
+ double redError = red1 - red2;
+ redError *= redError;
+
+ error += redError + greenError + blueError;
+ }
+
+ return error;
+ }
+
+}
Property changes on: trunk/polycasso/src/com/mebigfatguy/polycasso/Feedback.java
___________________________________________________________________
Added: svn:mime-type
+ text/plain
Added: svn:eol-style
+ native
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|