Class ResampleOp

java.lang.Object
com.mortennobel.imagescaling.AdvancedResizeOp
com.mortennobel.imagescaling.ResampleOp
All Implemented Interfaces:
BufferedImageOp

public class ResampleOp extends AdvancedResizeOp
Based on work from Java Image Util ( http://schmidt.devlib.org/jiu/ ) Note that the filter method is not thread safe
  • Field Details

    • MAX_CHANNEL_VALUE

      private final int MAX_CHANNEL_VALUE
      See Also:
    • nrChannels

      private int nrChannels
    • srcWidth

      private int srcWidth
    • srcHeight

      private int srcHeight
    • dstWidth

      private int dstWidth
    • dstHeight

      private int dstHeight
    • horizontalSubsamplingData

      private ResampleOp.SubSamplingData horizontalSubsamplingData
    • verticalSubsamplingData

      private ResampleOp.SubSamplingData verticalSubsamplingData
    • processedItems

      private int processedItems
    • totalItems

      private float totalItems
    • numberOfThreads

      private int numberOfThreads
    • multipleInvocationLock

      private AtomicInteger multipleInvocationLock
    • filter

      private ResampleFilter filter
  • Constructor Details

    • ResampleOp

      public ResampleOp(int destWidth, int destHeight)
    • ResampleOp

      public ResampleOp(DimensionConstrain dimensionConstrain)
  • Method Details

    • getFilter

      public ResampleFilter getFilter()
    • setFilter

      public void setFilter(ResampleFilter filter)
    • getNumberOfThreads

      public int getNumberOfThreads()
    • setNumberOfThreads

      public void setNumberOfThreads(int numberOfThreads)
    • doFilter

      public BufferedImage doFilter(BufferedImage srcImg, BufferedImage dest, int dstWidth, int dstHeight)
      Specified by:
      doFilter in class AdvancedResizeOp
    • waitForAllThreads

      private void waitForAllThreads(Thread[] threads)
    • createSubSampling

      static ResampleOp.SubSamplingData createSubSampling(ResampleFilter filter, int srcSize, int dstSize)
    • verticalFromWorkToDst

      private void verticalFromWorkToDst(byte[][] workPixels, byte[] outPixels, int start, int delta)
    • verticalFromWorkToDstGray

      private void verticalFromWorkToDstGray(byte[][] workPixels, byte[] outPixels, int start, int delta)
    • horizontallyFromSrcToWork

      private void horizontallyFromSrcToWork(BufferedImage srcImg, byte[][] workPixels, int start, int delta)
      Apply filter to sample horizontally from Src to Work
      Parameters:
      srcImg -
      workPixels -
    • horizontallyFromSrcToWorkGray

      private void horizontallyFromSrcToWorkGray(BufferedImage srcImg, byte[][] workPixels, int start, int delta)
      Apply filter to sample horizontally from Src to Work
      Parameters:
      srcImg -
      workPixels -
    • toByte

      private byte toByte(float f)
    • setProgress

      private void setProgress()
    • getResultBufferedImageType

      protected int getResultBufferedImageType(BufferedImage srcImg)