com.atlassian.confluence.pages.thumbnail.renderer
Class DelegatingThumbnailRenderer

java.lang.Object
  extended by com.atlassian.confluence.pages.thumbnail.renderer.DelegatingThumbnailRenderer

public class DelegatingThumbnailRenderer
extends Object

Thumbnail renderer that uses different strategies to render a thumbnail.

Images will be resized using a high quality renderer if possible and a streaming renderer if they exceed a certain width or height.


Constructor Summary
DelegatingThumbnailRenderer(com.atlassian.core.util.thumbnail.Thumber thumber, AttachmentManager attachmentManager)
          Create a DelegatingThumbnailRenderer using an adaptive strategy that take the available memory into account to decide if we use the higher quality rendering or the lower quality stream based rendering (less memory consumption).
DelegatingThumbnailRenderer(com.atlassian.core.util.thumbnail.Thumber thumber, AttachmentManager attachmentManager, int rasterSizeThresholdPx)
          Create a DelegatingThumbnailRenderer that will use the lower quality stream based rendering if the image exceeds the rasterSizeThresholdPx (height or width in px).
DelegatingThumbnailRenderer(com.atlassian.core.util.thumbnail.Thumber thumber, AttachmentManager attachmentManager, com.google.common.base.Predicate<Dimensions> rasterBasedRenderingThreshold)
          Create a DelegatingThumbnailRenderer that will use the rasterBasedRenderingThreshold Predicate to decide if it's going to use the stream based (lower quality but low memory consumption) or the raster based renderer (higher quality but high memory consumption).
 
Method Summary
 com.atlassian.core.util.thumbnail.Thumbnail retrieveOrCreateThumbNail(Attachment attachment, File thumbnailFile, int maxWidth, int maxHeight)
          Create a new or return an existing Thumbnail for this attachment.
 com.atlassian.core.util.thumbnail.Thumbnail retrieveOrCreateThumbNail(Attachment attachment, File thumbnailFile, String imageType, int maxWidth, int minWidth, int height)
          creates a thumbnail or returns an existing thumbnail for this attachment
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

DelegatingThumbnailRenderer

public DelegatingThumbnailRenderer(com.atlassian.core.util.thumbnail.Thumber thumber,
                                   AttachmentManager attachmentManager)
Create a DelegatingThumbnailRenderer using an adaptive strategy that take the available memory into account to decide if we use the higher quality rendering or the lower quality stream based rendering (less memory consumption).


DelegatingThumbnailRenderer

public DelegatingThumbnailRenderer(com.atlassian.core.util.thumbnail.Thumber thumber,
                                   AttachmentManager attachmentManager,
                                   int rasterSizeThresholdPx)
Create a DelegatingThumbnailRenderer that will use the lower quality stream based rendering if the image exceeds the rasterSizeThresholdPx (height or width in px).


DelegatingThumbnailRenderer

public DelegatingThumbnailRenderer(com.atlassian.core.util.thumbnail.Thumber thumber,
                                   AttachmentManager attachmentManager,
                                   com.google.common.base.Predicate<Dimensions> rasterBasedRenderingThreshold)
Create a DelegatingThumbnailRenderer that will use the rasterBasedRenderingThreshold Predicate to decide if it's going to use the stream based (lower quality but low memory consumption) or the raster based renderer (higher quality but high memory consumption).

Parameters:
thumber - Thumber instance to use
attachmentManager - The attachment manager that will be used to retrieve the image data
rasterBasedRenderingThreshold - Predicate used to determine if the raster or stream based image rendering should be used. The Predicate.apply(T) method should return true for the given Dimensions if the raster based (memory intensive) rendering approach can be used.
Method Detail

retrieveOrCreateThumbNail

public com.atlassian.core.util.thumbnail.Thumbnail retrieveOrCreateThumbNail(Attachment attachment,
                                                                             File thumbnailFile,
                                                                             String imageType,
                                                                             int maxWidth,
                                                                             int minWidth,
                                                                             int height)
creates a thumbnail or returns an existing thumbnail for this attachment

Parameters:
attachment -
thumbnailFile -
maxWidth -
minWidth -
height -
Returns:

retrieveOrCreateThumbNail

public com.atlassian.core.util.thumbnail.Thumbnail retrieveOrCreateThumbNail(Attachment attachment,
                                                                             File thumbnailFile,
                                                                             int maxWidth,
                                                                             int maxHeight)
                                                                      throws ThumbnailRenderException
Create a new or return an existing Thumbnail for this attachment. Thumbnails will always be PNG thumbnails!

Parameters:
attachment - - The attachment that contains the image data
thumbnailFile - - The thumbnail file that will be used to store the rendered thumbnail
maxWidth - - The maximum width of the thumbnail - this renderer maintains the aspect ratio of the original image
maxHeight - - The maximum height of the thumbnail - this renderer maintains the aspect ratio of the original image
Returns:
Thumbnail in PNG format that is at most maxWidthxmaxHeight, never returns null
Throws:
ThumbnailRenderException - if the thumbnail cannot be created.


Copyright © 2003-2013 Atlassian. All Rights Reserved.