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
Method Summary
Modifier and Type | Method | Description |
---|---|---|
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("iVBORw0KGgoAAAANSUhEUgAAAfQAAAH0CAMAAAD8CC+4AAAArlBMVEUAAAD+yRf/yRb/pAj/kxH+mhb/mRb+mRb+mhb+mRf+mhb/mhf+mhb+mhb+mhb/gwD+mhb+mRf+mRb+mRb+mRT+mhf+owD+mRb+mRb+mRb+mRb/mRb+mRb+mRb/mhb+mRf+mRb+mRb+mRb+mRb/mRb+mRb+mRX+mhb+mxX+mBT+mRb+mRX+mRb/mhX+mRb+mRb+mRX+mRb+mRX+mRb+mhb+mRX+mRb+mRb/mhf/yRegVLefAAAAOHRSTlMATMwGEPy/yfaDS/L54BYCWQrp7BsgA2xBpJnNqo+IKbBg0sSflGe7OiW2RnFS5Nt11i/uen9ONIPwOQAAAA4zSURBVHja7MGBAAAAAICg/akXqQIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYPbgQAAAAAAAyP+1EVRVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVdi7E+VEgSgKw7cKWskg4IKK+x73uI6e93+yqcnMZGygoREiVtnfA9zE+kt6MVYURcldQyPl1Xg2Ka+mtyDl1Vh7Ul7MAgVSXkwbzCXlpVRM4EzKS3kHYDmkvBBnDABbUl7IGr9N6Dscm9PCwbIOk2F/NFAPk+cxx6cFZc1+s3Dr1B3p9EnvcNqkPNYVf6woW5W+gYBS13N+R8ctdWB8uCH+8ihL1x3Cjesqet6uDH8VHcrOxYAA01X0vK3wpZxh8xJEJurxnjcP/1kaZeRqQOhNRc/bBDfOlA3dgthCRc/ZFrcMlzLRhpipqej50nbgdCkLRwaxIano+drDx8voECi2UdHzZZvwOWiU2pIhwkBFz9cUAWdKrQ8/ozBtd4sGAHyQip6rBUOAUaeUHAs8c1Oh37RF38JURc9Vo4MQK0rpCF51QF+ci6ei52qDUOVsxzKPOCp6nlwToao6pdLyH9FU9OcxhECbUhmDs1bRn8cWIsyjFBwDtwxNRX8a+gcEUh7WbXCKpKI/jSkivGW3eW+p6E/DQ5TSke62AKenoj+Lyg6Rig261xqc/jdEbziUVoOeYcQfDj1GDzH2dK8f4LxlGF1fn1sTy2RAqXZYzd6vDUpK//E1ovp7xDHdiPGq936Mi6bdohuNxb7bqZYA42MybR7pe10ZYhjLZ4tePxcZfE7dcoXkLUNHbJOMGPzsBEbUWlstqjluVOnLon0C56P3nd21MWJNnGeK7lzmDKHMWZ2kONuCYMSpJzmiUZ4gXK3vJozuhY4qePRdzpDQfKLolzHE2NSleNsDxEptmRHlXdSImZ0gut2FwGpJ32JpQIJZp2R2tU8mOEbtVvue6Ms5ohnnBkUbFBDN3MeNOE7iRjQd2ejrKoSMvUPfoAApc0qmhnit5NGdpoFYnSVF2ZcQqxg5wjlLjJjU5aJvGKLMbcrcOyS9P0P0ShcyzC0J6UO5ET8iRqwg47SWif6GGLslZcw9QZLp5h/d7kAO25CAO5Yd0SSB+kF2xCg++hmxqkfK1hDShrlHdw+QdhYE20HankItLUhrxkUvM8SrLilLWyRQzjm6PkYCGwphi5rLr2iuBXlsFB19YELGTqfs6B9IoKrnGl0rIAm2DRkxSTZiTQGVYrIRXlT0muywlUOZaSORaa7Re0jGXJLfDMmc6uQ3RTI1VxA9mQ1lZcGQjJdj9DULLTtpzdrdMZP6nOgC4YjhmEndRJYTj5jLRi91uu12t1NCGKNO2dAOSGin5Ra9YiGgNPW0vxPKcwSd4xczo+01okZsiGPXwkYs/o0YFRD0LhOdfV36a+upIdxGp/cTib3lFr2PgG6dbiyKwRxu3PrQcrkRHfiZdtx6yF/7emP4nfT46N0l3XDbDAEeZWFZQmKlAUnalj/5Wg3Ltxby0V0j9gKm8ZNFbkLqpcCIi39EH34zujFggaI/iKf14NeLi167kM/Cgl8h6/tXeQUnnw9cZhI3FsFDL6tHvUs/BhQw8o8oueK/5wasJQW8+0cYdnT0Q50C9An8rpTeCHcZ5RJdN8Azj4LXJHyT2SXwagOpa+k+fXGZ1K3JBj4/I6MfbApRCVRvUWr2CXep6nlE34DHLnLHOrMi/B42W8sdY6sa/fMm+dfhU/A+GhHRqy6R1D2SoVNaLdxplkf0juQ3MLSd8BbxIHgdsceELf1jgdeXvfNai6OztfSBekQpebgXOz4++hI8UyeBi+ikMwCvJhxRFj1Wr+BVK7JLZ1scvUVCM/C6mR/R5U2ch0dvihbJ2GeCqQme7mcSccbgnBzBEXdDIo0dOB+OKDpbkpBtgHNqpD2ip1B+ePRhcEct+yZb0B+rwI5aqCnYNhfk19g9eANR9E6SW/IjpVE3kIJVeXT0qvyX5vVS+NvxJH/BZbPQz0cbRtyDWbzPH4miFynCNXC3l8YQqZwfHN1O8uLnoWnqSTZFk9AVeZDkgVcEp3dXdLL8U1JYIx3Tfmx0D7xjgpWrGP6SlxShH/r7bMFzE3x/ZH5f9Ck4q3T/uyGl2WOjj8AxGgl+YpU+vQs2ZzL7d+sXe/fapCYMhQH4tMhKBURUvKIoXlBRvLRrT///H2un3dZCgAQSV2zzfOlMO5PZ7isYkpND6lpBu8jS17lc6H2M8aG8FvIytu8a+gljzkXOyaq9tOt/DAW+S7XU639R5JH4c7nQQ4yJoDTFRG7Ddw19mvfvtAlAjbjdUm+UDsYpaXPpGeTxMEalhM766SttjfxU751CL56YjXHNtIUOt8TnZokxw2Kfm1KhexhjcF3o/IaVDb32D4V+ERX6HEVQt//77d0tdHu3SoW+wRgdSrLOKMTocRM5n3MiR/9dC5/I6VAq9JagidwVxdCaD3tk0yHPleWRrQ3cj2zm/R/ZyGeOkl5QkC+PW5zZFl+cabCtrORd0wdispBjJWRxZidmceaCopi9hy3DzvmXYQ/8y7BXyDEWsQyr6MSaWCkjFKbxsA0Xl3/DZVhgw2WdvuEy4txwoX9LhmI6Q9g6CjN7wNYqfVNzzba1qtvsrZEv6d+Mn22+rVV6UblL/F9KmaM4RvNhRRQnyOQzFlH0mZ9vOllFFGvI0jMzp90K6wlwsmbbUKCUAAVav1voDnOh0gHj3KxyqcjmLpcyFZ5yKfp31VJM5XtXRYFe3i10qCPbzrKdXRjpM95XbTNrwmYdGR9gam1KYWRMi7Uw8gSl9FEktXmf0H36D64O2GoJP2eXQBsbtuurrWQWmRlfIZVbpAQatfRRakdM2Fbg7o44FxU6db+8piejcJj2kibZZYYYOZTrgviRuwbGmV1IcSp22AHbHpB6O0yoQym2gUK59wkdBwyH080ty5kkJ+9k1NFhOZPUzTucfu5SJ//0Y03Y3kCS4mLS+nFLsGT9ifjQXyyGA4ydEOKUKSaN8g8wtgcFTx+SZz6jZF7KCpOm1FOrWjLQ7gKR/KYqZYKCXe4TOk5/p24PbkeKktRR/JDwmNYQa0oOEW/sGPq0csAVbYjGGZM6DEeVMfDgptf/LK7r/hgF64sJXcGkILTBclqufsxrSqD9aUrQnC/o7aHs1KYE+UP0iXk5QV9tem9DrOtlmxKgOrva8NP2ZCJJr0EptoqCLcWEDhoSVN34+YcNbwYqptDq7nK5O6qYYtyDuDBziOHuyNZ+5IA5QyBX+xE0xj9GCSKx3dc3KJovKPQzEshT2VP+RkMT/kZDI7GNhgxk4yscxXFiGT0xobssj4W9oGBLMf6uZA0gKHWermTkLluA6cgVgYrM4xAdMaH3MdOkbPPAE6SonbGAvvD+g2ToW+2+HcVmKNxATOiOytR9unnmbonULRDZq/hOo2ToMGcsQ63K5B1xLiZ02GGWduwqqyOjL/w9hU8iegpTQ2e5AQcKlGaicHuO0OmvkSGrkuwhstBale0eToZuLTHfzobydBTulTd0+nwjhJi1jlS+B3mY3hOQP8ReY31PAD10sFaYZ6kABwN/Mz59vZx05DcVFboSsN5MnBn1dR4K5NvuuF/n4QW0IfY9YAwdYK1hFm0NXNT4c8RFq1DoYGdlOYGksI7Z1KUDdI0x94t7rj7txT3soYO3wHQvHvDREtVtK+T2SVjoYKUtOGtuwwJSuON9v5bVyBqiM+kCm8wXhbWnxBCU0MFqHZHkH4DX58TUtvUOxe8DM2YPOZqvZuya9VeHGmTo7l+MlNfg2cDOOZFDtIcHpdAQC5UYYnlVgEAvgbauMy3xgQ8t4GYmojogtz6I5c0nbvASzEav86+0AO3BfhSc25ph6NF4Npl7FlBQhpjOPSgxxGn5NoRJGYJa926Hr+440g2t7c9eQxtEGCdusgPk1gKJghb6nc0SJyU85DYAqdqhrxJnohQDeW1BqnbofXxzhF/qAnbZpGqHPsCfbpUJU+Tkg1Tx0GtqYmlzw185I1U8dPATC2nWEfmsQap66KtkY4Q+8vFAqnro12Ttsh0hjwikyodu68meBvO7dgv9IN00HxQ6uEQVdXDPpZlv0s2HR4UeEtUP3TaWZloy9CcIvWcSx3U2GkfZjAz9CUKHPfmI3TBKtx+RoT9F6LUOeax/oGMpI5ChP0Xo8AV/M2vwxjtjCYYjQ3+S0P96Mt/1/vzlRMXCJiBDf5LQoZX6mO25RWPv1GToTxM6BOllis6nIxYxBxn684Tu6FkVzE5r6r7UI2QxAxn6E4UeK4Id2kBodJAqasrQnyp0GFGO7wyQxtgAi4/SzeaxoSsLvNFSjt/4ch/9bqx+zAHugX6u3g8pB4cJU5CejxPh3xaH2NVumZhrZIH0hLw2xkTTzS33tcz837SNMKEz+3K4NBWr+0mV9/Z/VNfHMtQ9SN/Zt5PUhIIACKAN2gkJGYxJHBa2ouKEIjj2/U/m2oXy//I3712hoKAW1VztSa7v+B5osu9TzDW9/gcabrXPdcRzK9B4PynmymaHQBHGk1zNZ8dSK8d1EytEvtDsZRmPfvMzcblzSS5P6zLvPkr8ZfsXKNShP5x+5DvdZbq0A2XrrQed/jml9HZa7K5fAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAODGHhwIAAAAAAD5vzaCqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq0BwcCAAAAAIL8rQe5AgAAAAAAHgKWYe6TlvpEzwAAAABJRU5ErkJggg=="); 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
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