BitmapImageSizing bis = ImageMaker.getScaleWidthHeight(width, height,
userBis);
- float usescale = bis.scale;
- int usewidth = bis.width;
- int useheight = bis.height;
+ float usescale = bis.scale();
+ int usewidth = bis.width();
+ int useheight = bis.height();
bi = new BufferedImage(usewidth, useheight, BufferedImage.TYPE_INT_RGB);
graphics = bi.getGraphics();
}
/**
- * Takes suggested float scale, int width, int height and create a bounding
- * box returned as a BitmapImageSizing object with consistent scale, width,
- * height fields.
+ * Takes initial width and height, and suggested float scale, int width, int
+ * height and create a bounding box returned as a BitmapImageSizing object
+ * with consistent scale, width, height fields.
*
+ * @param width
+ * The unscaled image width
+ * @param height
+ * The unscaled image height
* @param scale
+ * The suggested scaling
* @param bitmapwidth
+ * The suggested width
* @param bitmapheight
- * @return BitmapImageSizing
+ * The suggested height
+ * @return BitmapImageSizing A consistent scale,width and height for the final
+ * image
*/
public static BitmapImageSizing getScaleWidthHeight(int width, int height,
float scale, int bitmapwidth, int bitmapheight)
int usewidth = width;
int useheight = height;
+ if ((width == 0 && bitmapwidth > 0)
+ || (height == 0 && bitmapheight > 0))
+ {
+ // original image is zero sized! Avoid dividing by zero!
+ return BitmapImageSizing.nullBitmapImageSizing();
+ }
+
// use the smallest positive scale (i.e. fit in the box)
if (scale > 0.0f)
{
useheight = bitmapheight;
}
}
- return new BitmapImageSizing(usescale, usewidth, useheight);
+ return new BitmapImageSizing(usescale, usewidth, useheight, false);
}
/**
public static BitmapImageSizing getScaleWidthHeight(int width, int height,
BitmapImageSizing bis)
{
- return ImageMaker.getScaleWidthHeight(width, height, bis.scale,
- bis.width, bis.height);
+ return ImageMaker.getScaleWidthHeight(width, height, bis.scale(),
+ bis.width(), bis.height());
}
/**
public static BitmapImageSizing parseScaleWidthHeightStrings(
String scaleS, String widthS, String heightS)
{
+ if (scaleS == null && widthS == null && heightS == null)
+ {
+ // if all items are null (i.e. not provided) we use the dynamic
+ // preferences set BIS
+ return BitmapImageSizing.defaultBitmapImageSizing();
+ }
+
float scale = 0.0f;
int width = 0;
int height = 0;
}
}
- return new BitmapImageSizing(scale, width, height);
+ return new BitmapImageSizing(scale, width, height, false);
}
}