Code style changes and code clean up.

This commit is contained in:
Harald Kuhr 2013-12-25 13:44:41 +01:00
parent 63d9029a3e
commit fc99abb4b4

View File

@ -93,11 +93,11 @@ abstract class JMagickReader extends ImageReaderBase {
private static final ColorModel CM_GRAY_ALPHA = private static final ColorModel CM_GRAY_ALPHA =
new ComponentColorModel(ColorSpace.getInstance(ColorSpace.CS_GRAY), true, true, Transparency.TRANSLUCENT, DataBuffer.TYPE_BYTE); new ComponentColorModel(ColorSpace.getInstance(ColorSpace.CS_GRAY), true, true, Transparency.TRANSLUCENT, DataBuffer.TYPE_BYTE);
private final boolean mUseTempFile; private final boolean useTempFile;
private File mTempFile; private File tempFile;
private MagickImage mImage; private MagickImage image;
private Dimension mSize; private Dimension size;
protected JMagickReader(final JMagickImageReaderSpiSupport pProvider) { protected JMagickReader(final JMagickImageReaderSpiSupport pProvider) {
this(pProvider, pProvider.useTempFile()); this(pProvider, pProvider.useTempFile());
@ -105,28 +105,29 @@ abstract class JMagickReader extends ImageReaderBase {
protected JMagickReader(final ImageReaderSpi pProvider, final boolean pUseTemp) { protected JMagickReader(final ImageReaderSpi pProvider, final boolean pUseTemp) {
super(pProvider); super(pProvider);
mUseTempFile = pUseTemp; useTempFile = pUseTemp;
} }
@Override @Override
protected void resetMembers() { protected void resetMembers() {
if (mTempFile != null) { if (tempFile != null&& !tempFile.delete()) {
mTempFile.delete(); tempFile.deleteOnExit();
} }
mTempFile = null;
if (mImage != null) { tempFile = null;
mImage.destroyImages();
if (image != null) {
image.destroyImages();
} }
mImage = null;
mSize = null; image = null;
size = null;
} }
// TODO: Handle multi-image formats // TODO: Handle multi-image formats
// if (mImage.hasFrames()) { // if (image.hasFrames()) {
// int count = mImage.getNumFrames(); // int count = image.getNumFrames();
// MagickImage[] images = mImage.breakFrames(); // MagickImage[] images = image.breakFrames();
// } // }
public Iterator<ImageTypeSpecifier> getImageTypes(int pIndex) throws IOException { public Iterator<ImageTypeSpecifier> getImageTypes(int pIndex) throws IOException {
@ -140,7 +141,7 @@ abstract class JMagickReader extends ImageReaderBase {
try { try {
ColorModel cm; ColorModel cm;
// NOTE: These are all fall-through by intention // NOTE: These are all fall-through by intention
switch (mImage.getImageType()) { switch (image.getImageType()) {
case ImageType.BilevelType: case ImageType.BilevelType:
specs.add(IndexedImageTypeSpecifier.createFromIndexColorModel(MonochromeColorModel.getInstance())); specs.add(IndexedImageTypeSpecifier.createFromIndexColorModel(MonochromeColorModel.getInstance()));
case ImageType.GrayscaleType: case ImageType.GrayscaleType:
@ -158,11 +159,11 @@ abstract class JMagickReader extends ImageReaderBase {
)); ));
case ImageType.PaletteType: case ImageType.PaletteType:
specs.add(IndexedImageTypeSpecifier.createFromIndexColorModel( specs.add(IndexedImageTypeSpecifier.createFromIndexColorModel(
MagickUtil.createIndexColorModel(mImage.getColormap(), false) MagickUtil.createIndexColorModel(image.getColormap(), false)
)); ));
case ImageType.PaletteMatteType: case ImageType.PaletteMatteType:
specs.add(IndexedImageTypeSpecifier.createFromIndexColorModel( specs.add(IndexedImageTypeSpecifier.createFromIndexColorModel(
MagickUtil.createIndexColorModel(mImage.getColormap(), true) MagickUtil.createIndexColorModel(image.getColormap(), true)
)); ));
case ImageType.TrueColorType: case ImageType.TrueColorType:
// cm = MagickUtil.CM_COLOR_OPAQUE; // cm = MagickUtil.CM_COLOR_OPAQUE;
@ -183,7 +184,7 @@ abstract class JMagickReader extends ImageReaderBase {
case ImageType.ColorSeparationMatteType: case ImageType.ColorSeparationMatteType:
case ImageType.OptimizeType: case ImageType.OptimizeType:
default: default:
throw new MagickException("Unknown JMagick image type: " + mImage.getImageType()); throw new MagickException("Unknown JMagick image type: " + image.getImageType());
} }
} }
catch (MagickException e) { catch (MagickException e) {
@ -196,19 +197,19 @@ abstract class JMagickReader extends ImageReaderBase {
public int getWidth(int pIndex) throws IOException { public int getWidth(int pIndex) throws IOException {
checkBounds(pIndex); checkBounds(pIndex);
if (mSize == null) { if (size == null) {
init(0); init(0);
} }
return mSize != null ? mSize.width : -1; return size != null ? size.width : -1;
} }
public int getHeight(int pIndex) throws IOException { public int getHeight(int pIndex) throws IOException {
checkBounds(pIndex); checkBounds(pIndex);
if (mSize == null) { if (size == null) {
init(0); init(0);
} }
return mSize != null ? mSize.height : -1; return size != null ? size.height : -1;
} }
public BufferedImage read(int pIndex, ImageReadParam pParam) throws IOException { public BufferedImage read(int pIndex, ImageReadParam pParam) throws IOException {
@ -218,14 +219,14 @@ abstract class JMagickReader extends ImageReaderBase {
processImageStarted(pIndex); processImageStarted(pIndex);
// Some more waste of time and space... // Some more waste of time and space...
Dimension size = mSize; Dimension size = this.size;
if (pParam != null) { if (pParam != null) {
// Source region // Source region
// TODO: Maybe have to do some tests, to check if we are within bounds... // TODO: Maybe have to do some tests, to check if we are within bounds...
Rectangle sourceRegion = pParam.getSourceRegion(); Rectangle sourceRegion = pParam.getSourceRegion();
if (sourceRegion != null) { if (sourceRegion != null) {
mImage = mImage.cropImage(sourceRegion); image = image.cropImage(sourceRegion);
size = sourceRegion.getSize(); size = sourceRegion.getSize();
} }
@ -234,7 +235,7 @@ abstract class JMagickReader extends ImageReaderBase {
int w = size.width / pParam.getSourceXSubsampling(); int w = size.width / pParam.getSourceXSubsampling();
int h = size.height / pParam.getSourceYSubsampling(); int h = size.height / pParam.getSourceYSubsampling();
mImage = mImage.sampleImage(w, h); image = image.sampleImage(w, h);
size = new Dimension(w, h); size = new Dimension(w, h);
} }
} }
@ -245,7 +246,7 @@ abstract class JMagickReader extends ImageReaderBase {
} }
processImageProgress(10f); processImageProgress(10f);
BufferedImage buffered = MagickUtil.toBuffered(mImage); BufferedImage buffered = MagickUtil.toBuffered(image);
processImageProgress(100f); processImageProgress(100f);
/**/ /**/
@ -260,12 +261,12 @@ abstract class JMagickReader extends ImageReaderBase {
//*/ //*/
/** /**
System.out.println("Colorspace: " + mImage.getColorspace()); System.out.println("Colorspace: " + image.getColorspace());
System.out.println("Depth: " + mImage.getDepth()); System.out.println("Depth: " + image.getDepth());
System.out.println("Format: " + mImage.getImageFormat()); System.out.println("Format: " + image.getImageFormat());
System.out.println("Type: " + mImage.getImageType()); System.out.println("Type: " + image.getImageType());
System.out.println("IPTCProfile: " + StringUtil.deepToString(mImage.getIptcProfile())); System.out.println("IPTCProfile: " + StringUtil.deepToString(image.getIptcProfile()));
System.out.println("StorageClass: " + mImage.getStorageClass()); System.out.println("StorageClass: " + image.getStorageClass());
//*/ //*/
processImageComplete(); processImageComplete();
@ -282,11 +283,11 @@ abstract class JMagickReader extends ImageReaderBase {
checkBounds(pIndex); checkBounds(pIndex);
try { try {
if (mImage == null) { if (image == null) {
// TODO: If ImageInputStream is already file-backed, maybe we can peek into that file? // TODO: If ImageInputStream is already file-backed, maybe we can peek into that file?
// At the moment, the cache/file is not accessible, but we could create our own // At the moment, the cache/file is not accessible, but we could create our own
// FileImageInputStream provider that gives us this access. // FileImageInputStream provider that gives us this access.
if (!mUseTempFile && imageInput.length() >= 0 && imageInput.length() <= Integer.MAX_VALUE) { if (!useTempFile && imageInput.length() >= 0 && imageInput.length() <= Integer.MAX_VALUE) {
// This works for most file formats, as long as ImageMagick // This works for most file formats, as long as ImageMagick
// uses the file magic to decide file format // uses the file magic to decide file format
byte[] bytes = new byte[(int) imageInput.length()]; byte[] bytes = new byte[(int) imageInput.length()];
@ -294,17 +295,18 @@ abstract class JMagickReader extends ImageReaderBase {
// Unfortunately, this is a waste of space & time... // Unfortunately, this is a waste of space & time...
ImageInfo info = new ImageInfo(); ImageInfo info = new ImageInfo();
mImage = new MagickImage(info); image = new MagickImage(info);
mImage.blobToImage(info, bytes); image.blobToImage(info, bytes);
} }
else { else {
// Quirks mode: Use temp file to get correct file extension // Quirks mode: Use temp file to get correct file extension
// (which is even more waste of space & time, but might save memory) // (which is even more waste of space & time, but might save memory)
String ext = getFormatName().toLowerCase(); String ext = getFormatName().toLowerCase();
mTempFile = File.createTempFile("jmagickreader", "." + ext); tempFile = File.createTempFile("jmagickreader", "." + ext);
mTempFile.deleteOnExit(); tempFile.deleteOnExit();
OutputStream out = new BufferedOutputStream(new FileOutputStream(mTempFile)); OutputStream out = new BufferedOutputStream(new FileOutputStream(tempFile));
try { try {
byte[] buffer = new byte[FileUtil.BUF_SIZE]; byte[] buffer = new byte[FileUtil.BUF_SIZE];
int count; int count;
@ -320,11 +322,11 @@ abstract class JMagickReader extends ImageReaderBase {
out.close(); out.close();
} }
ImageInfo info = new ImageInfo(mTempFile.getAbsolutePath()); ImageInfo info = new ImageInfo(tempFile.getAbsolutePath());
mImage = new MagickImage(info); image = new MagickImage(info);
} }
mSize = mImage.getDimension(); size = image.getDimension();
} }
} }
catch (MagickException e) { catch (MagickException e) {