summaryrefslogtreecommitdiff
path: root/qadevOOo/runner/convwatch/PixelCounter.java
diff options
context:
space:
mode:
Diffstat (limited to 'qadevOOo/runner/convwatch/PixelCounter.java')
-rw-r--r--qadevOOo/runner/convwatch/PixelCounter.java206
1 files changed, 206 insertions, 0 deletions
diff --git a/qadevOOo/runner/convwatch/PixelCounter.java b/qadevOOo/runner/convwatch/PixelCounter.java
new file mode 100644
index 000000000000..116b07e48d8e
--- /dev/null
+++ b/qadevOOo/runner/convwatch/PixelCounter.java
@@ -0,0 +1,206 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+package convwatch;
+
+// import java.awt.Image;
+import convwatch.ImageHelper;
+
+// -----------------------------------------------------------------------------
+abstract class CountPixel
+{
+ int m_nCount = 0;
+ public int getCount() {return m_nCount;}
+ public abstract void count(int _nRGB);
+}
+
+// -----------------------------------------------------------------------------
+class CountNotWhite extends CountPixel
+{
+ public CountNotWhite()
+ {
+ // System.out.println("CountWhite()");
+ }
+
+ public void count(int pixel)
+ {
+ int alpha = (pixel >> 24) & 0xff;
+ int red = (pixel >> 16) & 0xff;
+ int green = (pixel >> 8) & 0xff;
+ int blue = (pixel ) & 0xff;
+
+ // System.out.println(String.valueOf(red) + ":" + String.valueOf(green) + ":" + String.valueOf(blue));
+ if (red == 0xff && green == 0xff && blue == 0xff)
+ {
+ return;
+ }
+ m_nCount++;
+ }
+}
+
+// -----------------------------------------------------------------------------
+class CountNotBlack extends CountPixel
+{
+ public CountNotBlack()
+ {
+ // System.out.println("CountBlack()");
+ }
+
+ public void count(int pixel)
+ {
+ int alpha = (pixel >> 24) & 0xff;
+ int red = (pixel >> 16) & 0xff;
+ int green = (pixel >> 8) & 0xff;
+ int blue = (pixel ) & 0xff;
+
+ if (red == 0x00 && green == 0x00 && blue == 0x00)
+ {
+ return;
+ }
+ m_nCount++;
+ }
+}
+
+// -----------------------------------------------------------------------------
+class graphics_stuff
+{
+ public int stuff()
+ {
+// (1) decoding
+ int rgba = 0; // ...; // comes from PixelGrabber, BufferedImage.getRGB etc.
+ int red = (rgba >> 16) & 0xff;
+ int green = (rgba >> 8) & 0xff;
+ int blue = rgba & 0xff;
+ int alpha = (rgba >> 24) & 0xff;
+// (2) now modify red, green, blue and alpha as you like;
+// make sure that each of the four values stays in the
+// interval 0 to 255
+// ...
+// (3) and encode back to an int, e.g. to give it to MemoryImageSource or
+// BufferedImage.setRGB
+ rgba = (alpha << 24) | (red << 16) | (green << 8) | blue;
+ return 0;
+ }
+
+ public static void handlesinglepixel(int x, int y, int pixel)
+ {
+ int alpha = (pixel >> 24) & 0xff;
+ int red = (pixel >> 16) & 0xff;
+ int green = (pixel >> 8) & 0xff;
+ int blue = (pixel ) & 0xff;
+ // Deal with the pixel as necessary...
+ }
+
+ public static void countPixel(ImageHelper img, int _x, int _y, int _w, int _h, CountPixel _aPixelCounter)
+ {
+ for (int y = 0; y < _h; y++) {
+ for (int x = 0; x < _w; x++) {
+ // handlesinglepixel(x+i, y+j, pixels[j * w + i]);
+ _aPixelCounter.count(img.getPixel(x,y));
+ }
+ }
+ }
+ public static int countNotWhitePixel(ImageHelper _aImage)
+ {
+ int w = _aImage.getWidth();
+ int h = _aImage.getHeight();
+
+ CountPixel aCountNotWhite = new CountNotWhite();
+ countPixel(_aImage, 0, 0, w, h, aCountNotWhite);
+ return aCountNotWhite.getCount();
+ }
+
+ public static int countNotBlackPixel(ImageHelper _aImage)
+ {
+ int w = _aImage.getWidth();
+ int h = _aImage.getHeight();
+
+ CountPixel aCountNotBlack = new CountNotBlack();
+ countPixel(_aImage, 0, 0, w, h, aCountNotBlack);
+ return aCountNotBlack.getCount();
+ }
+}
+
+// -----------------------------------------------------------------------------
+
+public class PixelCounter {
+ // private Image m_aImage;
+ ImageHelper m_aImage;
+
+
+ public int countNotWhitePixel(String _sFile)
+ throws java.io.IOException
+ {
+ m_aImage = ImageHelper.createImageHelper(_sFile);
+ int nw = graphics_stuff.countNotWhitePixel(m_aImage);
+ return nw;
+ }
+
+ public int countNotBlackPixel(String _sFile)
+ throws java.io.IOException
+ {
+ m_aImage = ImageHelper.createImageHelper(_sFile);
+ int nw = graphics_stuff.countNotBlackPixel(m_aImage);
+ return nw;
+ }
+
+ public static int countNotWhitePixelsFromImage(String _sFile)
+ throws java.io.IOException
+ {
+ PixelCounter a = new PixelCounter();
+ return a.countNotWhitePixel(_sFile);
+ }
+
+ public static int countNotBlackPixelsFromImage(String _sFile)
+ throws java.io.IOException
+ {
+ PixelCounter a = new PixelCounter();
+ return a.countNotBlackPixel(_sFile);
+ }
+
+ // -----------------------------------------------------------------------------
+
+// public static void main(String[] args) {
+//
+// String a = helper.StringHelper.createValueString(10, 4);
+// int dummy = 1;
+///*
+// BorderRemover a = new BorderRemover();
+// try
+// {
+// a.createNewImageWithoutBorder(args[0], args[1]);
+// }
+// catch(java.io.IOException e)
+// {
+// System.out.println("Exception caught.");
+// }
+// */
+// }
+
+}
+
+