commons-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Joakim Knudsen (JIRA)" <j...@apache.org>
Subject [jira] [Created] (IMAGING-208) Android version of Commons Imaging
Date Thu, 30 Nov 2017 20:40:00 GMT
Joakim Knudsen created IMAGING-208:
--------------------------------------

             Summary: Android version of Commons Imaging
                 Key: IMAGING-208
                 URL: https://issues.apache.org/jira/browse/IMAGING-208
             Project: Commons Imaging
          Issue Type: New Feature
            Reporter: Joakim Knudsen
            Priority: Minor


Effort has been made with Sanselan, to make an [Android compatible version of the library
(Sanselan-Android)|https://github.com/fulcrumapp/sanselan-android]. Running the library as-is
(either Sanselan 0.97 or Commons Imaging) on Android produces warnings and errors due to the
lack of support of java.awt.

Exploring the code, comparing with the original Sanselan code (and Commons Imaging), I find
that Sanselan-Android essentially comments out all references (imports etc) to {{java.awt.*}}
-- typically {{java.awt.Dimension}}, {{java.awt.BufferedImage}}, and {{java.awt.color.ICC_ColorSpace}}.

As such, Sanselan-Android only supports JPEG and TIFF (snip from {{ImageParser.java}}):
{code:java}
package org.apache.sanselan;

//import java.awt.Dimension;
//import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import java.io.PrintWriter;
import java.io.StringWriter;
import java.util.Map;

import org.apache.sanselan.common.BinaryFileParser;
import org.apache.sanselan.common.IImageMetadata;
import org.apache.sanselan.common.byteSources.ByteSource;
import org.apache.sanselan.common.byteSources.ByteSourceArray;
import org.apache.sanselan.common.byteSources.ByteSourceFile;
//import org.apache.sanselan.formats.bmp.BmpImageParser;
//import org.apache.sanselan.formats.gif.GifImageParser;
//import org.apache.sanselan.formats.ico.IcoImageParser;
import org.apache.sanselan.formats.jpeg.JpegImageParser;
//import org.apache.sanselan.formats.png.PngImageParser;
//import org.apache.sanselan.formats.pnm.PNMImageParser;
//import org.apache.sanselan.formats.psd.PsdImageParser;
import org.apache.sanselan.formats.tiff.TiffImageParser;

public abstract class ImageParser extends BinaryFileParser implements
		SanselanConstants
{

	public static final ImageParser[] getAllImageParsers()
	{
		ImageParser result[] = { new JpegImageParser(), new TiffImageParser(),
//				new PngImageParser() 
//				new BmpImageParser(),
//				new GifImageParser(), new PsdImageParser(),
//				new PNMImageParser(), new IcoImageParser(),
		// new JBig2ImageParser(),
		// new TgaImageParser(),
		};

		return result;
	}
{code}

*It has been proposed to make an Android compatible version of Commons Imaging, and I'd like
to propose this work to be started :) I'd also like to contribute as much as I can, but I'm
not confident enough to be the main resource in such a task.*

It seems to me that simply commenting out all references and usage of, say, {{java.awt.Dimension}}
is a unneccesarily crude fix, as this class appears to me to be a simple (?) wrapper class
of two dimensions (height and width)? Why not replace this with something compatible with
Android, and thus preserve functionality? [This StackOverflow post|https://stackoverflow.com/questions/8876130/class-dimension-for-java-on-android]
discusses writing an equivalent class, or, alternatively, using [{{Point}}|https://developer.android.com/reference/android/graphics/Point.html].



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Mime
View raw message