301 }
302
303 public int getNumThumbnailsSupported(ImageTypeSpecifier imageType,
304 ImageWriteParam param,
305 IIOMetadata streamMetadata,
306 IIOMetadata imageMetadata) {
307 if (jfifOK(imageType, param, streamMetadata, imageMetadata)) {
308 return Integer.MAX_VALUE;
309 }
310 return 0;
311 }
312
313 static final Dimension [] preferredThumbSizes = {new Dimension(1, 1),
314 new Dimension(255, 255)};
315
316 public Dimension[] getPreferredThumbnailSizes(ImageTypeSpecifier imageType,
317 ImageWriteParam param,
318 IIOMetadata streamMetadata,
319 IIOMetadata imageMetadata) {
320 if (jfifOK(imageType, param, streamMetadata, imageMetadata)) {
321 return (Dimension [])preferredThumbSizes.clone();
322 }
323 return null;
324 }
325
326 private boolean jfifOK(ImageTypeSpecifier imageType,
327 ImageWriteParam param,
328 IIOMetadata streamMetadata,
329 IIOMetadata imageMetadata) {
330 // If the image type and metadata are JFIF compatible, return true
331 if ((imageType != null) &&
332 (!JPEG.isJFIFcompliant(imageType, true))) {
333 return false;
334 }
335 if (imageMetadata != null) {
336 JPEGMetadata metadata = null;
337 if (imageMetadata instanceof JPEGMetadata) {
338 metadata = (JPEGMetadata) imageMetadata;
339 } else {
340 metadata = (JPEGMetadata)convertImageMetadata(imageMetadata,
341 imageType,
|
301 }
302
303 public int getNumThumbnailsSupported(ImageTypeSpecifier imageType,
304 ImageWriteParam param,
305 IIOMetadata streamMetadata,
306 IIOMetadata imageMetadata) {
307 if (jfifOK(imageType, param, streamMetadata, imageMetadata)) {
308 return Integer.MAX_VALUE;
309 }
310 return 0;
311 }
312
313 static final Dimension [] preferredThumbSizes = {new Dimension(1, 1),
314 new Dimension(255, 255)};
315
316 public Dimension[] getPreferredThumbnailSizes(ImageTypeSpecifier imageType,
317 ImageWriteParam param,
318 IIOMetadata streamMetadata,
319 IIOMetadata imageMetadata) {
320 if (jfifOK(imageType, param, streamMetadata, imageMetadata)) {
321 return preferredThumbSizes.clone();
322 }
323 return null;
324 }
325
326 private boolean jfifOK(ImageTypeSpecifier imageType,
327 ImageWriteParam param,
328 IIOMetadata streamMetadata,
329 IIOMetadata imageMetadata) {
330 // If the image type and metadata are JFIF compatible, return true
331 if ((imageType != null) &&
332 (!JPEG.isJFIFcompliant(imageType, true))) {
333 return false;
334 }
335 if (imageMetadata != null) {
336 JPEGMetadata metadata = null;
337 if (imageMetadata instanceof JPEGMetadata) {
338 metadata = (JPEGMetadata) imageMetadata;
339 } else {
340 metadata = (JPEGMetadata)convertImageMetadata(imageMetadata,
341 imageType,
|