diff options
author | tkellner <tkellner@3a0b52a2-8410-0410-bc02-ff6273a87459> | 2012-10-31 16:36:53 +0000 |
---|---|---|
committer | tkellner <tkellner@3a0b52a2-8410-0410-bc02-ff6273a87459> | 2012-10-31 16:36:53 +0000 |
commit | 6f34e1de3929b2c38b5e7cfd678be9dd02469172 (patch) | |
tree | f20a961041ed48ce3a2cbe2a060bd70950702599 /trunk/pdf-over-gui/src/main/java/at/asit/pdfover/gui/ImageConverter.java | |
parent | 772a0233a567087ab5bd6c0663625cb36c0dbf53 (diff) | |
download | pdf-over-6f34e1de3929b2c38b5e7cfd678be9dd02469172.tar.gz pdf-over-6f34e1de3929b2c38b5e7cfd678be9dd02469172.tar.bz2 pdf-over-6f34e1de3929b2c38b5e7cfd678be9dd02469172.zip |
Move ImageConverter and Unzipper to utils package
git-svn-id: https://svn.iaik.tugraz.at/svn/egiz/prj/current/12PDF-OVER-4.0@12739 3a0b52a2-8410-0410-bc02-ff6273a87459
Diffstat (limited to 'trunk/pdf-over-gui/src/main/java/at/asit/pdfover/gui/ImageConverter.java')
-rw-r--r-- | trunk/pdf-over-gui/src/main/java/at/asit/pdfover/gui/ImageConverter.java | 175 |
1 files changed, 0 insertions, 175 deletions
diff --git a/trunk/pdf-over-gui/src/main/java/at/asit/pdfover/gui/ImageConverter.java b/trunk/pdf-over-gui/src/main/java/at/asit/pdfover/gui/ImageConverter.java deleted file mode 100644 index 83beceff..00000000 --- a/trunk/pdf-over-gui/src/main/java/at/asit/pdfover/gui/ImageConverter.java +++ /dev/null @@ -1,175 +0,0 @@ -/* - * Copyright 2012 by A-SIT, Secure Information Technology Center Austria - * - * Licensed under the EUPL, Version 1.1 or - as soon they will be approved by - * the European Commission - subsequent versions of the EUPL (the "Licence"); - * You may not use this work except in compliance with the Licence. - * You may obtain a copy of the Licence at: - * http://joinup.ec.europa.eu/software/page/eupl - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the Licence is distributed on an "AS IS" basis, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the Licence for the specific language governing permissions and - * limitations under the Licence. - */ -package at.asit.pdfover.gui; - -// Imports -import java.awt.image.BufferedImage; -import java.awt.image.ColorModel; -import java.awt.image.ComponentColorModel; -import java.awt.image.DirectColorModel; -import java.awt.image.IndexColorModel; -import java.awt.image.WritableRaster; - -import org.eclipse.swt.graphics.ImageData; -import org.eclipse.swt.graphics.PaletteData; -import org.eclipse.swt.graphics.RGB; - -/** - * - */ -public class ImageConverter { - - /** - * Convert Image Data to AWT Image - * @param data - * @return AWT Image - */ - public static BufferedImage convertToAWT(ImageData data) { - ColorModel colorModel = null; - PaletteData palette = data.palette; - if (palette.isDirect) { - colorModel = new DirectColorModel(data.depth, palette.redMask, - palette.greenMask, palette.blueMask); - BufferedImage bufferedImage = new BufferedImage(colorModel, - colorModel.createCompatibleWritableRaster(data.width, - data.height), false, null); - WritableRaster raster = bufferedImage.getRaster(); - int[] pixelArray = new int[3]; - for (int y = 0; y < data.height; y++) { - for (int x = 0; x < data.width; x++) { - int pixel = data.getPixel(x, y); - RGB rgb = palette.getRGB(pixel); - pixelArray[0] = rgb.red; - pixelArray[1] = rgb.green; - pixelArray[2] = rgb.blue; - raster.setPixels(x, y, 1, 1, pixelArray); - } - } - return bufferedImage; - } - RGB[] rgbs = palette.getRGBs(); - byte[] red = new byte[rgbs.length]; - byte[] green = new byte[rgbs.length]; - byte[] blue = new byte[rgbs.length]; - for (int i = 0; i < rgbs.length; i++) { - RGB rgb = rgbs[i]; - red[i] = (byte) rgb.red; - green[i] = (byte) rgb.green; - blue[i] = (byte) rgb.blue; - } - if (data.transparentPixel != -1) { - colorModel = new IndexColorModel(data.depth, rgbs.length, red, - green, blue, data.transparentPixel); - } else { - colorModel = new IndexColorModel(data.depth, rgbs.length, red, - green, blue); - } - BufferedImage bufferedImage = new BufferedImage(colorModel, - colorModel.createCompatibleWritableRaster(data.width, - data.height), false, null); - WritableRaster raster = bufferedImage.getRaster(); - int[] pixelArray = new int[1]; - for (int y = 0; y < data.height; y++) { - for (int x = 0; x < data.width; x++) { - int pixel = data.getPixel(x, y); - pixelArray[0] = pixel; - raster.setPixel(x, y, pixelArray); - } - } - return bufferedImage; - - } - - /** - * Convert AWT Image to SWT Image - * - * @param bufferedImage - * @return SWT Image data - */ - public static ImageData convertToSWT(final BufferedImage bufferedImage) { - if (bufferedImage.getColorModel() instanceof DirectColorModel) { - DirectColorModel colorModel = (DirectColorModel) bufferedImage - .getColorModel(); - PaletteData palette = new PaletteData(colorModel.getRedMask(), - colorModel.getGreenMask(), colorModel.getBlueMask()); - ImageData data = new ImageData(bufferedImage.getWidth(), - bufferedImage.getHeight(), colorModel.getPixelSize(), - palette); - WritableRaster raster = bufferedImage.getRaster(); - int[] pixelArray = new int[3]; - for (int y = 0; y < data.height; y++) { - for (int x = 0; x < data.width; x++) { - raster.getPixel(x, y, pixelArray); - int pixel = palette.getPixel(new RGB(pixelArray[0], - pixelArray[1], pixelArray[2])); - data.setPixel(x, y, pixel); - } - } - return data; - } else if (bufferedImage.getColorModel() instanceof IndexColorModel) { - IndexColorModel colorModel = (IndexColorModel) bufferedImage - .getColorModel(); - int size = colorModel.getMapSize(); - byte[] reds = new byte[size]; - byte[] greens = new byte[size]; - byte[] blues = new byte[size]; - colorModel.getReds(reds); - colorModel.getGreens(greens); - colorModel.getBlues(blues); - RGB[] rgbs = new RGB[size]; - for (int i = 0; i < rgbs.length; i++) { - rgbs[i] = new RGB(reds[i] & 0xFF, greens[i] & 0xFF, - blues[i] & 0xFF); - } - PaletteData palette = new PaletteData(rgbs); - ImageData data = new ImageData(bufferedImage.getWidth(), - bufferedImage.getHeight(), colorModel.getPixelSize(), - palette); - data.transparentPixel = colorModel.getTransparentPixel(); - WritableRaster raster = bufferedImage.getRaster(); - int[] pixelArray = new int[1]; - for (int y = 0; y < data.height; y++) { - for (int x = 0; x < data.width; x++) { - raster.getPixel(x, y, pixelArray); - data.setPixel(x, y, pixelArray[0]); - } - } - return data; - } else if (bufferedImage.getColorModel() instanceof ComponentColorModel) { - ComponentColorModel colorModel = (ComponentColorModel)bufferedImage.getColorModel(); - - //ASSUMES: 3 BYTE BGR IMAGE TYPE - - PaletteData palette = new PaletteData(0x0000FF, 0x00FF00,0xFF0000); - ImageData data = new ImageData(bufferedImage.getWidth(), bufferedImage.getHeight(), colorModel.getPixelSize(), palette); - - //This is valid because we are using a 3-byte Data model with no transparent pixels - data.transparentPixel = -1; - - WritableRaster raster = bufferedImage.getRaster(); - int[] pixelArray = new int[3]; - for (int y = 0; y < data.height; y++) { - for (int x = 0; x < data.width; x++) { - raster.getPixel(x, y, pixelArray); - int pixel = palette.getPixel(new RGB(pixelArray[0], pixelArray[1], pixelArray[2])); - data.setPixel(x, y, pixel); - } - } - return data; - } - return null; - } -} |