Iterator it = ImageIO.getImageReaders(file.openRead());
if (!it.hasNext())
return BooleanValue.FALSE;
ImageReader imageReader = (ImageReader)it.next();
if (it.hasNext())
throw new QuercusException("ImageIO returned two ImageReaders:\n "+
imageReader+"\n "+it.next());
String formatName = imageReader.getFormatName();
if (formatName.equals("jpeg") || formatName.equals("jpg"))
return LongValue.create(ImageModule.IMAGETYPE_JPG);
if (formatName.equals("gif"))
return LongValue.create(ImageModule.IMAGETYPE_GIF);
if (formatName.equals("png"))
return LongValue.create(ImageModule.IMAGETYPE_PNG);
if (formatName.equals("swf"))
return LongValue.create(ImageModule.IMAGETYPE_SWF);
if (formatName.equals("psd"))
return LongValue.create(ImageModule.IMAGETYPE_PSD);
if (formatName.equals("bmp"))
return LongValue.create(ImageModule.IMAGETYPE_BMP);
if (formatName.equals("tiff"))
return LongValue.create(ImageModule.IMAGETYPE_TIFF_II);
/*
// XXX: check byte order
if (formatName.equals("tiff"))
return ImageModule.IMAGETYPE_TIFF_MM;
*/
if (formatName.equals("jpc"))
return LongValue.create(ImageModule.IMAGETYPE_JPC);
if (formatName.equals("jp2"))
return LongValue.create(ImageModule.IMAGETYPE_JP2);
if (formatName.equals("jpf"))
return LongValue.create(ImageModule.IMAGETYPE_JPX);
if (formatName.equals("jb2"))
return LongValue.create(ImageModule.IMAGETYPE_JB2);
if (formatName.equals("swc"))
return LongValue.create(ImageModule.IMAGETYPE_SWC);
if (formatName.equals("iff"))
return LongValue.create(ImageModule.IMAGETYPE_IFF);
if (formatName.equals("wbmp"))
return LongValue.create(ImageModule.IMAGETYPE_WBMP);
if (formatName.equals("xbm"))
return LongValue.create(ImageModule.IMAGETYPE_XBM);
env.warning(L.l("ImageIO returned unknown image type: " + formatName));
return BooleanValue.FALSE;
}
catch (IOException e)
{
throw new QuercusException(e);
}
}