1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65
|
/**
* Méthode de création de la vignette
*/
private void initVignette(File file) {
BufferedImage image = null;
try {
if (FileUtils.getExtension(file).equalsIgnoreCase("tif") || FileUtils.getExtension(file).equalsIgnoreCase("tiff")) {
// -- Cas d'un fichier TIFF
image = ScanUtils.readTIFF(file, m_pageNumber - 1);
} else {
image = ImageIO.read(file);
}
final int imgWidth = image.getWidth();
final int imgHeight = image.getHeight();
if (imgWidth == -1 || imgHeight == -1) {
// -- l'image n'a pas fini de charger
return;
}
// -- Format Portrait ou paysage
if (imgWidth < imgHeight) {
int tmp = m_defaultWidth;
setDefaultWidth(m_defaultHeight);
setDefaultHeight(tmp);
}
m_vignette = new BufferedImage(m_defaultWidth, m_defaultHeight + 15, image.getType());
Graphics2D g2 = m_vignette.createGraphics();
g2.setRenderingHint(RenderingHints.KEY_INTERPOLATION,
RenderingHints.VALUE_INTERPOLATION_NEAREST_NEIGHBOR);
g2.setRenderingHint(RenderingHints.KEY_RENDERING,
RenderingHints.VALUE_RENDER_SPEED);
g2.setRenderingHint(RenderingHints.KEY_COLOR_RENDERING,
RenderingHints.VALUE_COLOR_RENDER_SPEED);
g2.setRenderingHint(RenderingHints.KEY_DITHERING,
RenderingHints.VALUE_DITHER_DISABLE);
// -- Redimensionnement
g2.drawImage(image, 0, 0, m_defaultWidth, m_defaultHeight, null);
setVignetteText(g2);
g2.dispose();
} catch (IOException e) {
s_logger.fatal(e.getMessage(), e);
}
/**
* Méthode de ScanUtils pour lire une image à partir d'un fichier TIFF et de son numéro de page
*/
public static BufferedImage readTIFF(File file, int numPage) {
BufferedImage result = null;
try {
FileSeekableStream stream = new FileSeekableStream(file);
TIFFDecodeParam paramd = new TIFFDecodeParam();
ImageDecoder decoder = ImageCodec.createImageDecoder("TIFF", stream, paramd);
RenderedImageAdapter ria = new RenderedImageAdapter(decoder.decodeAsRenderedImage(numPage));
result = ria.getAsBufferedImage();
} catch (IOException e) {
//TODO : MC : I18n
s_logger.error(e.getMessage(), e);
}
return result;
} |
Partager