Class DelegatingThumbnailRenderer

java.lang.Object
com.atlassian.confluence.impl.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

    Constructors
    Constructor
    Description
    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, Predicate<ImageDimensions> 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

    Modifier and Type
    Method
    Description
    com.atlassian.core.util.thumbnail.Thumbnail
    retrieveOrCreateThumbNail(@NonNull Attachment attachment, com.atlassian.dc.filestore.api.compat.FilesystemPath thumbnailFile, int maxWidth, int maxHeight)
     
    com.atlassian.core.util.thumbnail.Thumbnail
    retrieveOrCreateThumbNail(@NonNull Attachment attachment, File thumbnailFile, int maxWidth, int maxHeight)
    Create a new or return 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 Details

    • 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, Predicate<ImageDimensions> 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<ImageDimensions> used to determine if the raster or stream based image rendering should be used. The Predicate.test(Object) method should return true for the given Dimensions if the raster based (memory intensive) rendering approach can be used.
      Since:
      7.0.1
  • Method Details

    • retrieveOrCreateThumbNail

      public com.atlassian.core.util.thumbnail.Thumbnail retrieveOrCreateThumbNail(@NonNull Attachment attachment, com.atlassian.dc.filestore.api.compat.FilesystemPath thumbnailFile, int maxWidth, int maxHeight) throws ThumbnailRenderException
      Throws:
      ThumbnailRenderException
      Since:
      7.14
    • retrieveOrCreateThumbNail

      public com.atlassian.core.util.thumbnail.Thumbnail retrieveOrCreateThumbNail(@NonNull 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. Cannot be null.
      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.