diff --git a/java_test/java/com/google/zxing/BufferedImageLuminanceSource.java b/java_test/java/com/google/zxing/BufferedImageLuminanceSource.java deleted file mode 100644 index a777be5..0000000 --- a/java_test/java/com/google/zxing/BufferedImageLuminanceSource.java +++ /dev/null @@ -1,183 +0,0 @@ -/* - * Copyright 2009 ZXing authors - * - * 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.google.zxing; - -import java.awt.Graphics2D; -import java.awt.geom.AffineTransform; -import java.awt.image.BufferedImage; -import java.awt.image.WritableRaster; - -/** - * This LuminanceSource implementation is meant for J2SE clients and our blackbox unit tests. - * - * @author dswitkin@google.com (Daniel Switkin) - * @author Sean Owen - * @author code@elektrowolle.de (Wolfgang Jung) - */ -public final class BufferedImageLuminanceSource extends LuminanceSource { - - private static final double MINUS_45_IN_RADIANS = -0.7853981633974483; // Math.toRadians(-45.0) - - private final BufferedImage image; - private final int left; - private final int top; - - public BufferedImageLuminanceSource(BufferedImage image) { - this(image, 0, 0, image.getWidth(), image.getHeight()); - } - - public BufferedImageLuminanceSource(BufferedImage image, int left, int top, int width, int height) { - super(width, height); - - if (image.getType() == BufferedImage.TYPE_BYTE_GRAY) { - this.image = image; - } else { - int sourceWidth = image.getWidth(); - int sourceHeight = image.getHeight(); - if (left + width > sourceWidth || top + height > sourceHeight) { - throw new IllegalArgumentException("Crop rectangle does not fit within image data."); - } - - this.image = new BufferedImage(sourceWidth, sourceHeight, BufferedImage.TYPE_BYTE_GRAY); - - WritableRaster raster = this.image.getRaster(); - int[] buffer = new int[width]; - for (int y = top; y < top + height; y++) { - image.getRGB(left, y, width, 1, buffer, 0, sourceWidth); - for (int x = 0; x < width; x++) { - int pixel = buffer[x]; - - // The color of fully-transparent pixels is irrelevant. They are often, technically, fully-transparent - // black (0 alpha, and then 0 RGB). They are often used, of course as the "white" area in a - // barcode image. Force any such pixel to be white: - if ((pixel & 0xFF000000) == 0) { - // white, so we know its luminance is 255 - buffer[x] = 0xFF; - } else { - // .299R + 0.587G + 0.114B (YUV/YIQ for PAL and NTSC), - // (306*R) >> 10 is approximately equal to R*0.299, and so on. - // 0x200 >> 10 is 0.5, it implements rounding. - buffer[x] = - (306 * ((pixel >> 16) & 0xFF) + - 601 * ((pixel >> 8) & 0xFF) + - 117 * (pixel & 0xFF) + - 0x200) >> 10; - } - } - raster.setPixels(left, y, width, 1, buffer); - } - - } - this.left = left; - this.top = top; - } - - @Override - public byte[] getRow(int y, byte[] row) { - if (y < 0 || y >= getHeight()) { - throw new IllegalArgumentException("Requested row is outside the image: " + y); - } - int width = getWidth(); - if (row == null || row.length < width) { - row = new byte[width]; - } - // The underlying raster of image consists of bytes with the luminance values - image.getRaster().getDataElements(left, top + y, width, 1, row); - return row; - } - - @Override - public byte[] getMatrix() { - int width = getWidth(); - int height = getHeight(); - int area = width * height; - byte[] matrix = new byte[area]; - // The underlying raster of image consists of area bytes with the luminance values - image.getRaster().getDataElements(left, top, width, height, matrix); - return matrix; - } - - @Override - public boolean isCropSupported() { - return true; - } - - @Override - public LuminanceSource crop(int left, int top, int width, int height) { - return new BufferedImageLuminanceSource(image, this.left + left, this.top + top, width, height); - } - - /** - * This is always true, since the image is a gray-scale image. - * - * @return true - */ - @Override - public boolean isRotateSupported() { - return true; - } - - @Override - public LuminanceSource rotateCounterClockwise() { - int sourceWidth = image.getWidth(); - int sourceHeight = image.getHeight(); - - // Rotate 90 degrees counterclockwise. - AffineTransform transform = new AffineTransform(0.0, -1.0, 1.0, 0.0, 0.0, sourceWidth); - - // Note width/height are flipped since we are rotating 90 degrees. - BufferedImage rotatedImage = new BufferedImage(sourceHeight, sourceWidth, BufferedImage.TYPE_BYTE_GRAY); - - // Draw the original image into rotated, via transformation - Graphics2D g = rotatedImage.createGraphics(); - g.drawImage(image, transform, null); - g.dispose(); - - // Maintain the cropped region, but rotate it too. - int width = getWidth(); - return new BufferedImageLuminanceSource(rotatedImage, top, sourceWidth - (left + width), getHeight(), width); - } - - @Override - public LuminanceSource rotateCounterClockwise45() { - int width = getWidth(); - int height = getHeight(); - - int oldCenterX = left + width / 2; - int oldCenterY = top + height / 2; - - // Rotate 45 degrees counterclockwise. - AffineTransform transform = AffineTransform.getRotateInstance(MINUS_45_IN_RADIANS, oldCenterX, oldCenterY); - - int sourceDimension = Math.max(image.getWidth(), image.getHeight()); - BufferedImage rotatedImage = new BufferedImage(sourceDimension, sourceDimension, BufferedImage.TYPE_BYTE_GRAY); - - // Draw the original image into rotated, via transformation - Graphics2D g = rotatedImage.createGraphics(); - g.drawImage(image, transform, null); - g.dispose(); - - int halfDimension = Math.max(width, height) / 2; - int newLeft = Math.max(0, oldCenterX - halfDimension); - int newTop = Math.max(0, oldCenterY - halfDimension); - int newRight = Math.min(sourceDimension - 1, oldCenterX + halfDimension); - int newBottom = Math.min(sourceDimension - 1, oldCenterY + halfDimension); - - return new BufferedImageLuminanceSource(rotatedImage, newLeft, newTop, newRight - newLeft, newBottom - newTop); - } - -} diff --git a/java_test/java/com/google/zxing/InvertedLuminanceSourceTestCase.java b/java_test/java/com/google/zxing/InvertedLuminanceSourceTestCase.java deleted file mode 100644 index 932a7e2..0000000 --- a/java_test/java/com/google/zxing/InvertedLuminanceSourceTestCase.java +++ /dev/null @@ -1,39 +0,0 @@ -/* - * Copyright 2020 ZXing authors - * - * 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.google.zxing; - -import org.junit.Assert; -import org.junit.Test; - -import java.awt.image.BufferedImage; - -/** - * Tests {@link InvertedLuminanceSource}. - */ -public final class InvertedLuminanceSourceTestCase extends Assert { - - @Test - public void testInverted() { - BufferedImage image = new BufferedImage(2, 1, BufferedImage.TYPE_INT_RGB); - image.setRGB(0, 0, 0xFFFFFF); - LuminanceSource source = new BufferedImageLuminanceSource(image); - assertArrayEquals(new byte[] { (byte) 0xFF, 0 }, source.getRow(0, null)); - LuminanceSource inverted = new InvertedLuminanceSource(source); - assertArrayEquals(new byte[] { 0, (byte) 0xFF }, inverted.getRow(0, null)); - } - -} diff --git a/java_test/java/com/google/zxing/PlanarYUVLuminanceSourceTestCase.java b/src/PlanarYUVLuminanceSourceTestCase.java similarity index 100% rename from java_test/java/com/google/zxing/PlanarYUVLuminanceSourceTestCase.java rename to src/PlanarYUVLuminanceSourceTestCase.java diff --git a/java_test/java/com/google/zxing/RGBLuminanceSourceTestCase.java b/src/RGBLuminanceSourceTestCase.java similarity index 100% rename from java_test/java/com/google/zxing/RGBLuminanceSourceTestCase.java rename to src/RGBLuminanceSourceTestCase.java diff --git a/java_test/java/com/google/zxing/multi/MultiTestCase.java b/src/multi/MultiTestCase.java similarity index 100% rename from java_test/java/com/google/zxing/multi/MultiTestCase.java rename to src/multi/MultiTestCase.java diff --git a/java_test/java/com/google/zxing/multi/qrcode/MultiQRCodeTestCase.java b/src/multi/qrcode/MultiQRCodeTestCase.java similarity index 100% rename from java_test/java/com/google/zxing/multi/qrcode/MultiQRCodeTestCase.java rename to src/multi/qrcode/MultiQRCodeTestCase.java diff --git a/java_test/java/com/google/zxing/oned/CodaBarWriterTestCase.java b/src/oned/CodaBarWriterTestCase.java similarity index 100% rename from java_test/java/com/google/zxing/oned/CodaBarWriterTestCase.java rename to src/oned/CodaBarWriterTestCase.java diff --git a/java_test/java/com/google/zxing/oned/Code128WriterTestCase.java b/src/oned/Code128WriterTestCase.java similarity index 100% rename from java_test/java/com/google/zxing/oned/Code128WriterTestCase.java rename to src/oned/Code128WriterTestCase.java diff --git a/java_test/java/com/google/zxing/oned/Code39WriterTestCase.java b/src/oned/Code39WriterTestCase.java similarity index 100% rename from java_test/java/com/google/zxing/oned/Code39WriterTestCase.java rename to src/oned/Code39WriterTestCase.java diff --git a/java_test/java/com/google/zxing/oned/Code93ReaderTestCase.java b/src/oned/Code93ReaderTestCase.java similarity index 100% rename from java_test/java/com/google/zxing/oned/Code93ReaderTestCase.java rename to src/oned/Code93ReaderTestCase.java diff --git a/java_test/java/com/google/zxing/oned/Code93WriterTestCase.java b/src/oned/Code93WriterTestCase.java similarity index 100% rename from java_test/java/com/google/zxing/oned/Code93WriterTestCase.java rename to src/oned/Code93WriterTestCase.java diff --git a/java_test/java/com/google/zxing/oned/EAN13WriterTestCase.java b/src/oned/EAN13WriterTestCase.java similarity index 100% rename from java_test/java/com/google/zxing/oned/EAN13WriterTestCase.java rename to src/oned/EAN13WriterTestCase.java diff --git a/java_test/java/com/google/zxing/oned/EAN8WriterTestCase.java b/src/oned/EAN8WriterTestCase.java similarity index 100% rename from java_test/java/com/google/zxing/oned/EAN8WriterTestCase.java rename to src/oned/EAN8WriterTestCase.java diff --git a/java_test/java/com/google/zxing/oned/EANManufacturerOrgSupportTest.java b/src/oned/EANManufacturerOrgSupportTest.java similarity index 100% rename from java_test/java/com/google/zxing/oned/EANManufacturerOrgSupportTest.java rename to src/oned/EANManufacturerOrgSupportTest.java diff --git a/java_test/java/com/google/zxing/oned/ITFWriterTestCase.java b/src/oned/ITFWriterTestCase.java similarity index 100% rename from java_test/java/com/google/zxing/oned/ITFWriterTestCase.java rename to src/oned/ITFWriterTestCase.java diff --git a/java_test/java/com/google/zxing/oned/UPCAWriterTestCase.java b/src/oned/UPCAWriterTestCase.java similarity index 100% rename from java_test/java/com/google/zxing/oned/UPCAWriterTestCase.java rename to src/oned/UPCAWriterTestCase.java diff --git a/java_test/java/com/google/zxing/oned/UPCEWriterTestCase.java b/src/oned/UPCEWriterTestCase.java similarity index 100% rename from java_test/java/com/google/zxing/oned/UPCEWriterTestCase.java rename to src/oned/UPCEWriterTestCase.java diff --git a/java_test/java/com/google/zxing/oned/rss/expanded/BinaryUtil.java b/src/oned/rss/expanded/BinaryUtil.java similarity index 100% rename from java_test/java/com/google/zxing/oned/rss/expanded/BinaryUtil.java rename to src/oned/rss/expanded/BinaryUtil.java diff --git a/java_test/java/com/google/zxing/oned/rss/expanded/BinaryUtilTest.java b/src/oned/rss/expanded/BinaryUtilTest.java similarity index 100% rename from java_test/java/com/google/zxing/oned/rss/expanded/BinaryUtilTest.java rename to src/oned/rss/expanded/BinaryUtilTest.java diff --git a/java_test/java/com/google/zxing/oned/rss/expanded/BitArrayBuilderTest.java b/src/oned/rss/expanded/BitArrayBuilderTest.java similarity index 100% rename from java_test/java/com/google/zxing/oned/rss/expanded/BitArrayBuilderTest.java rename to src/oned/rss/expanded/BitArrayBuilderTest.java diff --git a/java_test/java/com/google/zxing/oned/rss/expanded/ExpandedInformationDecoderTest.java b/src/oned/rss/expanded/ExpandedInformationDecoderTest.java similarity index 100% rename from java_test/java/com/google/zxing/oned/rss/expanded/ExpandedInformationDecoderTest.java rename to src/oned/rss/expanded/ExpandedInformationDecoderTest.java diff --git a/java_test/java/com/google/zxing/oned/rss/expanded/RSSExpandedImage2binaryTestCase.java b/src/oned/rss/expanded/RSSExpandedImage2binaryTestCase.java similarity index 100% rename from java_test/java/com/google/zxing/oned/rss/expanded/RSSExpandedImage2binaryTestCase.java rename to src/oned/rss/expanded/RSSExpandedImage2binaryTestCase.java diff --git a/java_test/java/com/google/zxing/oned/rss/expanded/RSSExpandedImage2resultTestCase.java b/src/oned/rss/expanded/RSSExpandedImage2resultTestCase.java similarity index 100% rename from java_test/java/com/google/zxing/oned/rss/expanded/RSSExpandedImage2resultTestCase.java rename to src/oned/rss/expanded/RSSExpandedImage2resultTestCase.java diff --git a/java_test/java/com/google/zxing/oned/rss/expanded/RSSExpandedImage2stringTestCase.java b/src/oned/rss/expanded/RSSExpandedImage2stringTestCase.java similarity index 100% rename from java_test/java/com/google/zxing/oned/rss/expanded/RSSExpandedImage2stringTestCase.java rename to src/oned/rss/expanded/RSSExpandedImage2stringTestCase.java diff --git a/java_test/java/com/google/zxing/oned/rss/expanded/RSSExpandedInternalTestCase.java b/src/oned/rss/expanded/RSSExpandedInternalTestCase.java similarity index 100% rename from java_test/java/com/google/zxing/oned/rss/expanded/RSSExpandedInternalTestCase.java rename to src/oned/rss/expanded/RSSExpandedInternalTestCase.java diff --git a/java_test/java/com/google/zxing/oned/rss/expanded/RSSExpandedStackedInternalTestCase.java b/src/oned/rss/expanded/RSSExpandedStackedInternalTestCase.java similarity index 100% rename from java_test/java/com/google/zxing/oned/rss/expanded/RSSExpandedStackedInternalTestCase.java rename to src/oned/rss/expanded/RSSExpandedStackedInternalTestCase.java diff --git a/java_test/java/com/google/zxing/oned/rss/expanded/TestCaseUtil.java b/src/oned/rss/expanded/TestCaseUtil.java similarity index 100% rename from java_test/java/com/google/zxing/oned/rss/expanded/TestCaseUtil.java rename to src/oned/rss/expanded/TestCaseUtil.java diff --git a/java_test/java/com/google/zxing/oned/rss/expanded/decoders/AI013103DecoderTest.java b/src/oned/rss/expanded/decoders/AI013103DecoderTest.java similarity index 100% rename from java_test/java/com/google/zxing/oned/rss/expanded/decoders/AI013103DecoderTest.java rename to src/oned/rss/expanded/decoders/AI013103DecoderTest.java diff --git a/java_test/java/com/google/zxing/oned/rss/expanded/decoders/AI0132023203DecoderTest.java b/src/oned/rss/expanded/decoders/AI0132023203DecoderTest.java similarity index 100% rename from java_test/java/com/google/zxing/oned/rss/expanded/decoders/AI0132023203DecoderTest.java rename to src/oned/rss/expanded/decoders/AI0132023203DecoderTest.java diff --git a/java_test/java/com/google/zxing/oned/rss/expanded/decoders/AI013X0X1XDecoderTest.java b/src/oned/rss/expanded/decoders/AI013X0X1XDecoderTest.java similarity index 100% rename from java_test/java/com/google/zxing/oned/rss/expanded/decoders/AI013X0X1XDecoderTest.java rename to src/oned/rss/expanded/decoders/AI013X0X1XDecoderTest.java diff --git a/java_test/java/com/google/zxing/oned/rss/expanded/decoders/AbstractDecoderTest.java b/src/oned/rss/expanded/decoders/AbstractDecoderTest.java similarity index 100% rename from java_test/java/com/google/zxing/oned/rss/expanded/decoders/AbstractDecoderTest.java rename to src/oned/rss/expanded/decoders/AbstractDecoderTest.java diff --git a/java_test/java/com/google/zxing/oned/rss/expanded/decoders/AnyAIDecoderTest.java b/src/oned/rss/expanded/decoders/AnyAIDecoderTest.java similarity index 100% rename from java_test/java/com/google/zxing/oned/rss/expanded/decoders/AnyAIDecoderTest.java rename to src/oned/rss/expanded/decoders/AnyAIDecoderTest.java diff --git a/java_test/java/com/google/zxing/oned/rss/expanded/decoders/FieldParserTest.java b/src/oned/rss/expanded/decoders/FieldParserTest.java similarity index 100% rename from java_test/java/com/google/zxing/oned/rss/expanded/decoders/FieldParserTest.java rename to src/oned/rss/expanded/decoders/FieldParserTest.java diff --git a/java_test/java/com/google/zxing/inverted/InvertedDataMatrixBlackBoxTestCase.java b/tests/InvertedDataMatrixBlackBoxTestCase.java similarity index 100% rename from java_test/java/com/google/zxing/inverted/InvertedDataMatrixBlackBoxTestCase.java rename to tests/InvertedDataMatrixBlackBoxTestCase.java diff --git a/java_test/java/com/google/zxing/inverted/NoHintInvertedDataMatrixBlackBoxTestCase.java b/tests/NoHintInvertedDataMatrixBlackBoxTestCase.java similarity index 100% rename from java_test/java/com/google/zxing/inverted/NoHintInvertedDataMatrixBlackBoxTestCase.java rename to tests/NoHintInvertedDataMatrixBlackBoxTestCase.java