< prev index next >
core/JemmyAWTInput/src/org/jemmy/image/ResizeImageComparator.java
Print this page
*** 35,69 ****
/**
* Comparator that makes image sizes equal to compare them with other comparator
* most of them work only for the images with equal dimensions.
*
! * It is controlled by three parameters: <li>Resize Mode - defines way of
! * resizing images that are being compared. One of the following constants: <ul> <li>{@linkplain ResizeMode#NO_RESIZE NO_RESIZE},</li> <li>{@linkplain ResizeMode#PROPORTIONAL_RESIZE PROPORTIONAL_RESIZE},</li> <li>{@linkplain ResizeMode#ARBITRARY_RESIZE ARBITRARY_RESIZE}.</li></ul>
! * Default value is {@linkplain ResizeMode#PROPORTIONAL_RESIZE}.</li> <li>Resize
! * Hint - defines the way of images scaling that is specified when {@linkplain java.awt.Image#getScaledInstance(int, int, int)
! * Image.getScaledInstance()} method is invoked. One of the Image.SCALE_XXX is
! * expected. Default value is
! * {@linkplain java.awt.Image#SCALE_DEFAULT SCALE_DEFAULT}.</li> <li>Proportion
! * Distortion Threshold - defines maximum proportion distortion that is used in {@linkplain ResizeMode#PROPORTIONAL_RESIZE
! * PROPORTIONAL_RESIZE} mode to deal with cases when rounding and other problems
! * could cause sizes to be not ideally proportional.<p/>
* Threshold value is applied in the following way: {@code Math.abs(image.getSize() * scale
* - size) / image.getSize() > PROPORTION_DISTORTION_THRESHOLD}, where {@code image.getSize()}
* is both image dimensions and {@code size} is target width and height (which
* is defined as mininum of sizes of two images) and scale is the scale factor
* that scales the particular image to fit the width and height.
! * <p/>
* Default value is 0.02 so as much as 2% of width/height could differ (around 5
* in 0-255 color component values).</li>
*
* @author mrkam
*/
public class ResizeImageComparator extends ResizeComparator {
/**
! * Indentifies output where resize details are printed. Output is disabled
* by default.
*
* @see Environment#getOutput(java.lang.String)
*/
public static final String OUTPUT = ResizeImageComparator.class.getName()
--- 35,78 ----
/**
* Comparator that makes image sizes equal to compare them with other comparator
* most of them work only for the images with equal dimensions.
*
! * It is controlled by three parameters:
! * <p>
! * Resize Mode - defines way of resizing images that are being compared. One of the following constants:
! * <ul>
! * <li>{@linkplain ResizeMode#NO_RESIZE NO_RESIZE},</li>
! * <li>{@linkplain ResizeMode#PROPORTIONAL_RESIZE PROPORTIONAL_RESIZE},</li>
! * <li>{@linkplain ResizeMode#ARBITRARY_RESIZE ARBITRARY_RESIZE}.</li>
! * </ul>
! *
! * Default value is {@linkplain ResizeMode#PROPORTIONAL_RESIZE}.
! * <ul>
! * <li>Resize Hint - defines the way of images scaling that is specified when
! * {@linkplain java.awt.Image#getScaledInstance(int, int, int) Image.getScaledInstance()} method is invoked.
! * One of the Image.SCALE_XXX is expected. Default value is {@linkplain java.awt.Image#SCALE_DEFAULT SCALE_DEFAULT}.</li>
! * <li>Proportion Distortion Threshold - defines maximum proportion distortion that is used in
! * {@linkplain ResizeMode#PROPORTIONAL_RESIZE PROPORTIONAL_RESIZE} mode to deal with cases when rounding and other
! * problems could cause sizes to be not ideally proportional.
! * <p>
* Threshold value is applied in the following way: {@code Math.abs(image.getSize() * scale
* - size) / image.getSize() > PROPORTION_DISTORTION_THRESHOLD}, where {@code image.getSize()}
* is both image dimensions and {@code size} is target width and height (which
* is defined as mininum of sizes of two images) and scale is the scale factor
* that scales the particular image to fit the width and height.
! * <p>
* Default value is 0.02 so as much as 2% of width/height could differ (around 5
* in 0-255 color component values).</li>
+ * </ul>
*
* @author mrkam
*/
public class ResizeImageComparator extends ResizeComparator {
/**
! * Identifies output where resize details are printed. Output is disabled
* by default.
*
* @see Environment#getOutput(java.lang.String)
*/
public static final String OUTPUT = ResizeImageComparator.class.getName()
*** 77,92 ****
double propDistThreshold;
/**
* Resize Modes
*
! * @see
! * #ResizeImageComparator(org.jemmy.image.ResizeImageComparator.ResizeMode,
! * org.jemmy.image.ImageComparator)
! * @see
! * #ResizeImageComparator(org.jemmy.image.ResizeImageComparator.ResizeMode,
! * int, double, org.jemmy.image.ImageComparator)
*/
public static enum ResizeMode {
/**
* Images are never resized. Original images are always compared.
--- 86,97 ----
double propDistThreshold;
/**
* Resize Modes
*
! * @see ResizeImageComparator#ResizeImageComparator(ResizeMode, ImageComparator)
! * @see ResizeImageComparator#ResizeImageComparator(ResizeMode, double, int, ImageComparator)
*/
public static enum ResizeMode {
/**
* Images are never resized. Original images are always compared.
*** 96,121 ****
* Images are resized only if they have exactly or almost proportional
* sizes which is controlled by {@code proportionDistortion} parameter.
* If images have different proportions no resize is done and original
* images are compared.
*
! * @see
! * #ResizeImageComparator(org.jemmy.image.ResizeImageComparator.ResizeMode,
! * int, double, org.jemmy.image.ImageComparator)
*/
PROPORTIONAL_RESIZE,
/**
* Images are always resized to match both width and height and then
* compared.
*/
ARBITRARY_RESIZE
}
/**
! * Creates ResizeImageComparator with default resize settings: <li>resize
! * mode: {@linkplain ResizeMode#PROPORTIONAL_RESIZE ResizeMode.PROPORTIONAL_RESIZE}.</li>
! * <li>proportion distortion threshold: 0.02.</li> <li>resize hint: {@linkplain java.awt.Image#SCALE_DEFAULT Image.SCALE_DEFAULT}.</li>
*
* @param subComparator comparator to compare images after resize.
* @see java.awt.Image#getScaledInstance(int, int, int)
* @see ResizeMode
* @see ResizeImageComparator
--- 101,127 ----
* Images are resized only if they have exactly or almost proportional
* sizes which is controlled by {@code proportionDistortion} parameter.
* If images have different proportions no resize is done and original
* images are compared.
*
! * @see ResizeImageComparator#ResizeImageComparator(ResizeMode, ImageComparator)
*/
PROPORTIONAL_RESIZE,
/**
* Images are always resized to match both width and height and then
* compared.
*/
ARBITRARY_RESIZE
}
/**
! * Creates ResizeImageComparator with default resize settings:
! * <ul>
! * <li>resize mode: {@linkplain ResizeMode#PROPORTIONAL_RESIZE ResizeMode.PROPORTIONAL_RESIZE}.</li>
! * <li>proportion distortion threshold: 0.02.</li>
! * <li>resize hint: {@linkplain java.awt.Image#SCALE_DEFAULT Image.SCALE_DEFAULT}.</li>
! * </ul>
*
* @param subComparator comparator to compare images after resize.
* @see java.awt.Image#getScaledInstance(int, int, int)
* @see ResizeMode
* @see ResizeImageComparator
*** 127,138 ****
this.propDistThreshold = 0.02;
}
/**
* Creates ResizeImageComparator with the specified resize mode and default
! * settings for other parameters: <li>proportion distortion threshold:
! * 0.02.</li> <li>resize hint: {@linkplain java.awt.Image#SCALE_DEFAULT Image.SCALE_DEFAULT}.</li>
*
* @param resizeMode resize mode for this comparator.
* @param subComparator comparator to compare images after resize.
* @see ResizeMode
* @see ResizeImageComparator
--- 133,147 ----
this.propDistThreshold = 0.02;
}
/**
* Creates ResizeImageComparator with the specified resize mode and default
! * settings for other parameters:
! * <ul>
! * <li>proportion distortion threshold: 0.02.</li>
! * <li>resize hint: {@linkplain java.awt.Image#SCALE_DEFAULT Image.SCALE_DEFAULT}.</li>
! * </ul>
*
* @param resizeMode resize mode for this comparator.
* @param subComparator comparator to compare images after resize.
* @see ResizeMode
* @see ResizeImageComparator
*** 142,154 ****
this(subComparator);
this.resizeMode = resizeMode;
}
/**
! * Creates ResizeImageComparator with the following settings: <li>resize
! * mode: {@linkplain ResizeMode#PROPORTIONAL_RESIZE ResizeMode.PROPORTIONAL_RESIZE}.</li>
! * <li>specified proportion distortion threshold.</li> <li>resize hint: {@linkplain java.awt.Image#SCALE_DEFAULT Image.SCALE_DEFAULT}.</li>
*
* @param propDistThreshold proportion distortion threshold.
* @param subComparator comparator to compare images after resize.
* @see ResizeImageComparator
*/
--- 151,166 ----
this(subComparator);
this.resizeMode = resizeMode;
}
/**
! * Creates ResizeImageComparator with the following settings:
! * <ul>
! * <li>resize mode: {@linkplain ResizeMode#PROPORTIONAL_RESIZE ResizeMode.PROPORTIONAL_RESIZE}.</li>
! * <li>specified proportion distortion threshold.</li>
! * <li>resize hint: {@linkplain java.awt.Image#SCALE_DEFAULT Image.SCALE_DEFAULT}.</li>
! * </ul>
*
* @param propDistThreshold proportion distortion threshold.
* @param subComparator comparator to compare images after resize.
* @see ResizeImageComparator
*/
< prev index next >