Mercurial > hg > digilib-old
comparison common/src/main/java/digilib/image/ImageLoaderDocuImage.java @ 935:776347921bec
fixed slowness of tiff with color profile by loading into srgb.
author | robcast |
---|---|
date | Wed, 21 Dec 2011 17:02:28 +0100 |
parents | cbfc94584d3b |
children | 172079f9a398 |
comparison
equal
deleted
inserted
replaced
934:065dd6895ce7 | 935:776347921bec |
---|---|
45 | 45 |
46 import javax.imageio.IIOImage; | 46 import javax.imageio.IIOImage; |
47 import javax.imageio.ImageIO; | 47 import javax.imageio.ImageIO; |
48 import javax.imageio.ImageReadParam; | 48 import javax.imageio.ImageReadParam; |
49 import javax.imageio.ImageReader; | 49 import javax.imageio.ImageReader; |
50 import javax.imageio.ImageTypeSpecifier; | |
50 import javax.imageio.ImageWriteParam; | 51 import javax.imageio.ImageWriteParam; |
51 import javax.imageio.ImageWriter; | 52 import javax.imageio.ImageWriter; |
52 import javax.imageio.stream.FileImageInputStream; | 53 import javax.imageio.stream.FileImageInputStream; |
53 import javax.imageio.stream.ImageInputStream; | 54 import javax.imageio.stream.ImageInputStream; |
54 import javax.imageio.stream.ImageOutputStream; | 55 import javax.imageio.stream.ImageOutputStream; |
309 } */ | 310 } */ |
310 reader.setInput(istream); | 311 reader.setInput(istream); |
311 return reader; | 312 return reader; |
312 } | 313 } |
313 | 314 |
314 /* Load an image file into the Object. */ | 315 /* Load an image file into the Object. */ |
315 public void loadSubimage(ImageInput ii, Rectangle region, int prescale) | 316 public void loadSubimage(ImageInput ii, Rectangle region, int prescale) |
316 throws FileOpException { | 317 throws FileOpException { |
317 logger.debug("loadSubimage"); | 318 logger.debug("loadSubimage"); |
318 this.input = ii; | 319 this.input = ii; |
319 //ImageReader reader = null; | 320 //ImageReader reader = null; |
320 try { | 321 try { |
322 // set up reader parameters | 323 // set up reader parameters |
323 ImageReadParam readParam = reader.getDefaultReadParam(); | 324 ImageReadParam readParam = reader.getDefaultReadParam(); |
324 readParam.setSourceRegion(region); | 325 readParam.setSourceRegion(region); |
325 if (prescale > 1) { | 326 if (prescale > 1) { |
326 readParam.setSourceSubsampling(prescale, prescale, 0, 0); | 327 readParam.setSourceSubsampling(prescale, prescale, 0, 0); |
328 } | |
329 // try to restrict target color space to sRGB | |
330 for (Iterator<ImageTypeSpecifier> i = reader.getImageTypes(0); i.hasNext(); ) { | |
331 ImageTypeSpecifier type = (ImageTypeSpecifier) i.next(); | |
332 ColorSpace cs = type.getColorModel().getColorSpace(); | |
333 if (cs.isCS_sRGB()) { | |
334 logger.debug("loadSubimage: substituted sRGB destination type "+type); | |
335 readParam.setDestinationType(type); | |
336 break; | |
337 } | |
327 } | 338 } |
328 // read image | 339 // read image |
329 logger.debug("loading.."); | 340 logger.debug("loading.."); |
330 img = reader.read(0, readParam); | 341 img = reader.read(0, readParam); |
331 logger.debug("loaded"); | 342 logger.debug("loaded"); |