diff options
author | Maximilian Berger <maxberger@apache.org> | 2008-02-13 12:03:30 +0000 |
---|---|---|
committer | Maximilian Berger <maxberger@apache.org> | 2008-02-13 12:03:30 +0000 |
commit | f265c0e1c1566a2a3afeb0fa2641cf3a81598da3 (patch) | |
tree | 232af298a07db882d1cf2fa41a62e698ef1dd664 /src/java/org/apache/fop/image | |
parent | 575be874323e7ae9fc5a37cc4501a203bde0e85a (diff) | |
download | xmlgraphics-fop-f265c0e1c1566a2a3afeb0fa2641cf3a81598da3.tar.gz xmlgraphics-fop-f265c0e1c1566a2a3afeb0fa2641cf3a81598da3.zip |
Ensured all SVN properties are set equally
git-svn-id: https://svn.apache.org/repos/asf/xmlgraphics/fop/trunk@627367 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'src/java/org/apache/fop/image')
-rw-r--r-- | src/java/org/apache/fop/image/EmfImage.java | 102 | ||||
-rw-r--r-- | src/java/org/apache/fop/image/analyser/EMFReader.java | 324 |
2 files changed, 213 insertions, 213 deletions
diff --git a/src/java/org/apache/fop/image/EmfImage.java b/src/java/org/apache/fop/image/EmfImage.java index 1221b9b2b..73bbad232 100644 --- a/src/java/org/apache/fop/image/EmfImage.java +++ b/src/java/org/apache/fop/image/EmfImage.java @@ -1,51 +1,51 @@ -/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You 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.
- */
-
-/* $Id$ */
-
-package org.apache.fop.image;
-
-/**
- * Enhanced metafile image.
- * This supports loading a EMF image.
- *
- * @see AbstractFopImage
- * @see FopImage
- */
-public class EmfImage extends AbstractFopImage {
-
- /**
- * Create a bitmap image with the image data.
- *
- * @param imgInfo the image information
- */
- public EmfImage(FopImage.ImageInfo imgInfo) {
- super(imgInfo);
- }
-
- /**
- * Load the original EMF data.
- * This loads the original EMF data and reads the color space,
- * and icc profile if any.
- *
- * @return true if loaded false for any error
- */
- protected boolean loadOriginalData() {
- return loadDefaultOriginalData();
- }
-}
-
+/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You 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. + */ + +/* $Id$ */ + +package org.apache.fop.image; + +/** + * Enhanced metafile image. + * This supports loading a EMF image. + * + * @see AbstractFopImage + * @see FopImage + */ +public class EmfImage extends AbstractFopImage { + + /** + * Create a bitmap image with the image data. + * + * @param imgInfo the image information + */ + public EmfImage(FopImage.ImageInfo imgInfo) { + super(imgInfo); + } + + /** + * Load the original EMF data. + * This loads the original EMF data and reads the color space, + * and icc profile if any. + * + * @return true if loaded false for any error + */ + protected boolean loadOriginalData() { + return loadDefaultOriginalData(); + } +} + diff --git a/src/java/org/apache/fop/image/analyser/EMFReader.java b/src/java/org/apache/fop/image/analyser/EMFReader.java index bdc4e97ff..d6e2f2975 100644 --- a/src/java/org/apache/fop/image/analyser/EMFReader.java +++ b/src/java/org/apache/fop/image/analyser/EMFReader.java @@ -1,162 +1,162 @@ -/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You 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.
- */
-
-/* $Id$ */
-
-package org.apache.fop.image.analyser;
-
-// Java
-import java.io.InputStream;
-import java.io.IOException;
-
-// FOP
-import org.apache.fop.image.FopImage;
-import org.apache.fop.apps.FOUserAgent;
-
-/**
- * ImageReader object for EMF image type.
- *
- * @author Peter Herweg
- */
-public class EMFReader implements ImageReader {
-
- /** Length of the EMF header */
- protected static final int EMF_SIG_LENGTH = 88;
-
- /** offset to signature */
- private static final int SIGNATURE_OFFSET = 40;
- /** offset to width */
- private static final int WIDTH_OFFSET = 32;
- /** offset to height */
- private static final int HEIGHT_OFFSET = 36;
- /** offset to horizontal resolution in pixel */
- private static final int HRES_PIXEL_OFFSET = 72;
- /** offset to vertical resolution in pixel */
- private static final int VRES_PIXEL_OFFSET = 76;
- /** offset to horizontal resolution in mm */
- private static final int HRES_MM_OFFSET = 80;
- /** offset to vertical resolution in mm */
- private static final int VRES_MM_OFFSET = 84;
-
- /** {@inheritDoc} */
- public FopImage.ImageInfo verifySignature(String uri, InputStream bis,
- FOUserAgent ua) throws IOException {
- byte[] header = getDefaultHeader(bis);
- boolean supported
- = ( (header[SIGNATURE_OFFSET + 0] == (byte) 0x20)
- && (header[SIGNATURE_OFFSET + 1] == (byte) 0x45)
- && (header[SIGNATURE_OFFSET + 2] == (byte) 0x4D)
- && (header[SIGNATURE_OFFSET + 3] == (byte) 0x46) );
-
- if (supported) {
- FopImage.ImageInfo info = getDimension(header);
- info.originalURI = uri;
- info.mimeType = getMimeType();
- info.inputStream = bis;
- return info;
- } else {
- return null;
- }
- }
-
- /**
- * Returns the MIME type supported by this implementation.
- *
- * @return The MIME type
- */
- public String getMimeType() {
- return "image/emf";
- }
-
- private FopImage.ImageInfo getDimension(byte[] header) {
- FopImage.ImageInfo info = new FopImage.ImageInfo();
- long value = 0;
- int byte1;
- int byte2;
- int byte3;
- int byte4;
-
- // little endian notation
-
- //resolution
- byte1 = header[HRES_MM_OFFSET] & 0xff;
- byte2 = header[HRES_MM_OFFSET + 1] & 0xff;
- byte3 = header[HRES_MM_OFFSET + 2] & 0xff;
- byte4 = header[HRES_MM_OFFSET + 3] & 0xff;
- long hresMM = (long) ((byte4 << 24) | (byte3 << 16) | (byte2 << 8) | byte1);
-
- byte1 = header[VRES_MM_OFFSET] & 0xff;
- byte2 = header[VRES_MM_OFFSET + 1] & 0xff;
- byte3 = header[VRES_MM_OFFSET + 2] & 0xff;
- byte4 = header[VRES_MM_OFFSET + 3] & 0xff;
- long vresMM = (long) ((byte4 << 24) | (byte3 << 16) | (byte2 << 8) | byte1);
-
- byte1 = header[HRES_PIXEL_OFFSET] & 0xff;
- byte2 = header[HRES_PIXEL_OFFSET + 1] & 0xff;
- byte3 = header[HRES_PIXEL_OFFSET + 2] & 0xff;
- byte4 = header[HRES_PIXEL_OFFSET + 3] & 0xff;
- long hresPixel = (long) ((byte4 << 24) | (byte3 << 16) | (byte2 << 8) | byte1);
-
- byte1 = header[VRES_PIXEL_OFFSET] & 0xff;
- byte2 = header[VRES_PIXEL_OFFSET + 1] & 0xff;
- byte3 = header[VRES_PIXEL_OFFSET + 2] & 0xff;
- byte4 = header[VRES_PIXEL_OFFSET + 3] & 0xff;
- long vresPixel = (long) ((byte4 << 24) | (byte3 << 16) | (byte2 << 8) | byte1);
-
- info.dpiHorizontal = hresPixel / (hresMM / 25.4f);
- info.dpiVertical = vresPixel / (vresMM / 25.4f);
-
- //width
- byte1 = header[WIDTH_OFFSET] & 0xff;
- byte2 = header[WIDTH_OFFSET + 1] & 0xff;
- byte3 = header[WIDTH_OFFSET + 2] & 0xff;
- byte4 = header[WIDTH_OFFSET + 3] & 0xff;
- value = (long) ((byte4 << 24) | (byte3 << 16)
- | (byte2 << 8) | byte1);
- value = Math.round(value / 100f / 25.4f * info.dpiHorizontal);
- info.width = (int) (value & 0xffffffff);
-
- //height
- byte1 = header[HEIGHT_OFFSET] & 0xff;
- byte2 = header[HEIGHT_OFFSET + 1] & 0xff;
- byte3 = header[HEIGHT_OFFSET + 2] & 0xff;
- byte4 = header[HEIGHT_OFFSET + 3] & 0xff;
- value = (long) ((byte4 << 24) | (byte3 << 16) | (byte2 << 8) | byte1);
- value = Math.round(value / 100f / 25.4f * info.dpiVertical);
- info.height = (int) (value & 0xffffffff);
-
- return info;
- }
-
- private byte[] getDefaultHeader(InputStream imageStream)
- throws IOException {
- byte[] header = new byte[EMF_SIG_LENGTH];
- try {
- imageStream.mark(EMF_SIG_LENGTH + 1);
- imageStream.read(header);
- imageStream.reset();
- } catch (IOException ex) {
- try {
- imageStream.reset();
- } catch (IOException exbis) {
- // throw the original exception, not this one
- }
- throw ex;
- }
- return header;
- }
-}
+/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You 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. + */ + +/* $Id$ */ + +package org.apache.fop.image.analyser; + +// Java +import java.io.InputStream; +import java.io.IOException; + +// FOP +import org.apache.fop.image.FopImage; +import org.apache.fop.apps.FOUserAgent; + +/** + * ImageReader object for EMF image type. + * + * @author Peter Herweg + */ +public class EMFReader implements ImageReader { + + /** Length of the EMF header */ + protected static final int EMF_SIG_LENGTH = 88; + + /** offset to signature */ + private static final int SIGNATURE_OFFSET = 40; + /** offset to width */ + private static final int WIDTH_OFFSET = 32; + /** offset to height */ + private static final int HEIGHT_OFFSET = 36; + /** offset to horizontal resolution in pixel */ + private static final int HRES_PIXEL_OFFSET = 72; + /** offset to vertical resolution in pixel */ + private static final int VRES_PIXEL_OFFSET = 76; + /** offset to horizontal resolution in mm */ + private static final int HRES_MM_OFFSET = 80; + /** offset to vertical resolution in mm */ + private static final int VRES_MM_OFFSET = 84; + + /** {@inheritDoc} */ + public FopImage.ImageInfo verifySignature(String uri, InputStream bis, + FOUserAgent ua) throws IOException { + byte[] header = getDefaultHeader(bis); + boolean supported + = ( (header[SIGNATURE_OFFSET + 0] == (byte) 0x20) + && (header[SIGNATURE_OFFSET + 1] == (byte) 0x45) + && (header[SIGNATURE_OFFSET + 2] == (byte) 0x4D) + && (header[SIGNATURE_OFFSET + 3] == (byte) 0x46) ); + + if (supported) { + FopImage.ImageInfo info = getDimension(header); + info.originalURI = uri; + info.mimeType = getMimeType(); + info.inputStream = bis; + return info; + } else { + return null; + } + } + + /** + * Returns the MIME type supported by this implementation. + * + * @return The MIME type + */ + public String getMimeType() { + return "image/emf"; + } + + private FopImage.ImageInfo getDimension(byte[] header) { + FopImage.ImageInfo info = new FopImage.ImageInfo(); + long value = 0; + int byte1; + int byte2; + int byte3; + int byte4; + + // little endian notation + + //resolution + byte1 = header[HRES_MM_OFFSET] & 0xff; + byte2 = header[HRES_MM_OFFSET + 1] & 0xff; + byte3 = header[HRES_MM_OFFSET + 2] & 0xff; + byte4 = header[HRES_MM_OFFSET + 3] & 0xff; + long hresMM = (long) ((byte4 << 24) | (byte3 << 16) | (byte2 << 8) | byte1); + + byte1 = header[VRES_MM_OFFSET] & 0xff; + byte2 = header[VRES_MM_OFFSET + 1] & 0xff; + byte3 = header[VRES_MM_OFFSET + 2] & 0xff; + byte4 = header[VRES_MM_OFFSET + 3] & 0xff; + long vresMM = (long) ((byte4 << 24) | (byte3 << 16) | (byte2 << 8) | byte1); + + byte1 = header[HRES_PIXEL_OFFSET] & 0xff; + byte2 = header[HRES_PIXEL_OFFSET + 1] & 0xff; + byte3 = header[HRES_PIXEL_OFFSET + 2] & 0xff; + byte4 = header[HRES_PIXEL_OFFSET + 3] & 0xff; + long hresPixel = (long) ((byte4 << 24) | (byte3 << 16) | (byte2 << 8) | byte1); + + byte1 = header[VRES_PIXEL_OFFSET] & 0xff; + byte2 = header[VRES_PIXEL_OFFSET + 1] & 0xff; + byte3 = header[VRES_PIXEL_OFFSET + 2] & 0xff; + byte4 = header[VRES_PIXEL_OFFSET + 3] & 0xff; + long vresPixel = (long) ((byte4 << 24) | (byte3 << 16) | (byte2 << 8) | byte1); + + info.dpiHorizontal = hresPixel / (hresMM / 25.4f); + info.dpiVertical = vresPixel / (vresMM / 25.4f); + + //width + byte1 = header[WIDTH_OFFSET] & 0xff; + byte2 = header[WIDTH_OFFSET + 1] & 0xff; + byte3 = header[WIDTH_OFFSET + 2] & 0xff; + byte4 = header[WIDTH_OFFSET + 3] & 0xff; + value = (long) ((byte4 << 24) | (byte3 << 16) + | (byte2 << 8) | byte1); + value = Math.round(value / 100f / 25.4f * info.dpiHorizontal); + info.width = (int) (value & 0xffffffff); + + //height + byte1 = header[HEIGHT_OFFSET] & 0xff; + byte2 = header[HEIGHT_OFFSET + 1] & 0xff; + byte3 = header[HEIGHT_OFFSET + 2] & 0xff; + byte4 = header[HEIGHT_OFFSET + 3] & 0xff; + value = (long) ((byte4 << 24) | (byte3 << 16) | (byte2 << 8) | byte1); + value = Math.round(value / 100f / 25.4f * info.dpiVertical); + info.height = (int) (value & 0xffffffff); + + return info; + } + + private byte[] getDefaultHeader(InputStream imageStream) + throws IOException { + byte[] header = new byte[EMF_SIG_LENGTH]; + try { + imageStream.mark(EMF_SIG_LENGTH + 1); + imageStream.read(header); + imageStream.reset(); + } catch (IOException ex) { + try { + imageStream.reset(); + } catch (IOException exbis) { + // throw the original exception, not this one + } + throw ex; + } + return header; + } +} |