1 Image

Class Ax.image.Image


This class contains convenience methods for locating ImageReaders and ImageWriters, and performing simple encoding and decoding. SEE: https://github.com/rkalla/imgscalr/blob/master/src/main/java/org/imgscalr/Scalr.java

Constructor Summary

MethodDescription
JSImage(Object object)Creates a new image, given a source.

Method Summary

Modifier and TypeMethodDescription
byte[] getBytes()Returns the image as a byte array.
byte[] getBytes(String formatName)Returns the image as a byte array, with the specified format.
int getDominantColor()Returns the dominant color of the given image.
String getFormat()Returns the image format.
boolean isTransparent()Checks if the image's color model includes an alpha channel meaning is transparent.
JSImage resize(int width)Resizes the image maintaining its height/width ratio so the longest dimension has the specified size.
JSImage resize(int width, int height)Resizes the image to the specified height and width.
JSImage rotate(String rotation)Rotates the image using one of the following operators: CW_90, CW_180, CW_270, FLIP_HORZ, FLIP_VERT
JSImage scale(double scale)Scales the image using a percent factor.
BufferedImage scale(BufferedImage before, double scale)Scales an image using the Bilinear method.
void setName(String name)Sets the image name to be used in BLOB conversion.
JDBCBlob toBlob()Converts the image to a BLOB object.

Method Detail

JSImage

 JSImage(Object object)
Info:
Creates a new image, given a source.
Parameters:
object - image source

Example
Copy
var src = Ax.util.Base64.decode("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");
 var img = new Ax.image.Image(src);
 //or
 var image = new Ax.image.Image("file:photo1.jpg");

getBytes

byte[] getBytes()
Info:
Returns the image as a byte array.
Returns:
the image as a byte array

getBytes

byte[] getBytes(String formatName)
Info:
Returns the image as a byte array, with the specified format.
Parameters:
formatName - the image format
Returns:
the image as a byte array

getDominantColor

int getDominantColor()
Info:
Returns the dominant color of the given image.
Returns:
the dominant color of the given image

getFormat

                        String getFormat()
Info:
Returns the image format.
Returns:
image format (jpeg, png, ...)

isTransparent

boolean isTransparent()
Info:
Checks if the image's color model includes an alpha channel meaning is transparent.
Returns:
true if the image's color model includes an alpha channel, false otherwise

resize

                        JSImage resize(int width)
Info:
Resizes the image maintaining its height/width ratio so the longest dimension has the specified size.
Parameters:
width - size of the longest dimension (width, height), in pixels
Returns:
the image object resized

resize

                        JSImage resize(int width, int height)
Info:
Resizes the image to the specified height and width.
Parameters:
width - width of the image in pixels
height - height of the image in pixels
Returns:
the image object resized

rotate

                        JSImage rotate(String rotation)
Info:
Rotates the image using one of the following operators: CW_90, CW_180, CW_270, FLIP_HORZ, FLIP_VERT
Parameters:
rotation - rotation operator
Returns:
the image object rotated

scale

                        JSImage scale(double scale)
Info:
Scales the image using a percent factor.
Parameters:
scale - a percent factor to scale, like 2 or 0.5
Returns:
the image object scaled

scale

                        BufferedImage scale(BufferedImage before, double scale)
Info:
Scales an image using the Bilinear method. SEE: https://stackoverflow.com/questions/4216123/how-to-scale-a-bufferedimage AffineTransformOp.filter(), used in scaleBilinear(), is faster than the standard drawing method of Graphics2D.drawImage() in scale2(). Also BiCubic interpolation is the slowest, but gives the best results when expanding the image. (For performance, it should only be compared with scaleBilinear() and scaleNearest().) Bilinear seems to be better for shrinking the image, although it's a tough call. And NearestNeighbor is the fastest, with the worst results. Bilinear seems to be the best compromise between speed and quality. The Image.getScaledInstance(), called in the questionable() method, performed very poorly, and returned the same low quality as NearestNeighbor.
Parameters:
before - original image
scale - a percent factor to scale, like 2 or 0.5
Returns:
the image scaled

setName

void setName(String name)
Info:
Sets the image name to be used in BLOB conversion.
Parameters:
name - the image name to be used in BLOB conversion

toBlob

                        JDBCBlob toBlob()
Info:
Converts the image to a BLOB object.
Returns:
blob object