Package com.mortennobel.imagescaling
Class ResampleOp
java.lang.Object
com.mortennobel.imagescaling.AdvancedResizeOp
com.mortennobel.imagescaling.ResampleOp
- All Implemented Interfaces:
BufferedImageOp
Based on work from Java Image Util ( http://schmidt.devlib.org/jiu/ )
Note that the filter method is not thread safe
-
Nested Class Summary
Nested ClassesNested classes/interfaces inherited from class com.mortennobel.imagescaling.AdvancedResizeOp
AdvancedResizeOp.UnsharpenMask -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate intprivate intprivate ResampleFilterprivate ResampleOp.SubSamplingDataprivate final intprivate AtomicIntegerprivate intprivate intprivate intprivate intprivate intprivate floatprivate ResampleOp.SubSamplingData -
Constructor Summary
ConstructorsConstructorDescriptionResampleOp(int destWidth, int destHeight) ResampleOp(DimensionConstrain dimensionConstrain) -
Method Summary
Modifier and TypeMethodDescription(package private) static ResampleOp.SubSamplingDatacreateSubSampling(ResampleFilter filter, int srcSize, int dstSize) doFilter(BufferedImage srcImg, BufferedImage dest, int dstWidth, int dstHeight) intprotected intprivate voidhorizontallyFromSrcToWork(BufferedImage srcImg, byte[][] workPixels, int start, int delta) Apply filter to sample horizontally from Src to Workprivate voidhorizontallyFromSrcToWorkGray(BufferedImage srcImg, byte[][] workPixels, int start, int delta) Apply filter to sample horizontally from Src to WorkvoidsetFilter(ResampleFilter filter) voidsetNumberOfThreads(int numberOfThreads) private voidprivate bytetoByte(float f) private voidverticalFromWorkToDst(byte[][] workPixels, byte[] outPixels, int start, int delta) private voidverticalFromWorkToDstGray(byte[][] workPixels, byte[] outPixels, int start, int delta) private voidwaitForAllThreads(Thread[] threads) Methods inherited from class com.mortennobel.imagescaling.AdvancedResizeOp
addProgressListener, createCompatibleDestImage, filter, fireProgressChanged, getBounds2D, getPoint2D, getRenderingHints, getUnsharpenMask, removeProgressListener, setUnsharpenMask
-
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
-
verticalSubsamplingData
-
processedItems
private int processedItems -
totalItems
private float totalItems -
numberOfThreads
private int numberOfThreads -
multipleInvocationLock
-
filter
-
-
Constructor Details
-
ResampleOp
public ResampleOp(int destWidth, int destHeight) -
ResampleOp
-
-
Method Details
-
getFilter
-
setFilter
-
getNumberOfThreads
public int getNumberOfThreads() -
setNumberOfThreads
public void setNumberOfThreads(int numberOfThreads) -
doFilter
public BufferedImage doFilter(BufferedImage srcImg, BufferedImage dest, int dstWidth, int dstHeight) - Specified by:
doFilterin classAdvancedResizeOp
-
waitForAllThreads
-
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
-