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 int
private int
private ResampleFilter
private ResampleOp.SubSamplingData
private final int
private AtomicInteger
private int
private int
private int
private int
private int
private float
private ResampleOp.SubSamplingData
-
Constructor Summary
ConstructorsConstructorDescriptionResampleOp
(int destWidth, int destHeight) ResampleOp
(DimensionConstrain dimensionConstrain) -
Method Summary
Modifier and TypeMethodDescription(package private) static ResampleOp.SubSamplingData
createSubSampling
(ResampleFilter filter, int srcSize, int dstSize) doFilter
(BufferedImage srcImg, BufferedImage dest, int dstWidth, int dstHeight) int
protected int
private void
horizontallyFromSrcToWork
(BufferedImage srcImg, byte[][] workPixels, int start, int delta) Apply filter to sample horizontally from Src to Workprivate void
horizontallyFromSrcToWorkGray
(BufferedImage srcImg, byte[][] workPixels, int start, int delta) Apply filter to sample horizontally from Src to Workvoid
setFilter
(ResampleFilter filter) void
setNumberOfThreads
(int numberOfThreads) private void
private byte
toByte
(float f) private void
verticalFromWorkToDst
(byte[][] workPixels, byte[] outPixels, int start, int delta) private void
verticalFromWorkToDstGray
(byte[][] workPixels, byte[] outPixels, int start, int delta) private void
waitForAllThreads
(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:
doFilter
in 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
-