The JSImage class provides a scripting interface for image manipulation, enabling operations like resizing, rotating, flipping, and metadata management. It integrates with the images plugin for streamlined handling of image files.
Functionality
The class supports image transformation, including flipping vertically or horizontally with flip(type) and rotating by a specified number of degrees using rotate(degrees). Images can be resized while maintaining their aspect ratio through resize(width, height). Methods like getWidth() and getHeight() retrieve image dimensions.
For metadata, getMetaDataProperties() lists available properties, while getMetaDataDescription(property) and getMetaDataObject(property) provide detailed information or the actual metadata object. The getContentType() method fetches the MIME type of the image, and getData() retrieves the image bytes for storage or further processing.
These features enable comprehensive control and management of image files in scripting environments.
For more details, please refer to the Images plugin section of this documentation.
Returns:JSImage A new JSImage instance flipped vertically or horizontally, based on the type parameter.
Sample
var image = plugins.images.getImage(byteArray_or_file_or_filename);//loads the image
image = image.flip(0);//flip vertically
var bytes = image.getData();//gets the image bytes
plugins.file.writeFile('filename',bytes);//saves the image bytes
getContentType()
Gets the contenttype (image/jpeg) of this image.
Returns:String The MIME type of the image, such as "image/jpeg" or "image/png", or null if unavailable.
Sample
var image = plugins.images.getImage(byteArray_or_file);
var width = image.getWidth();
var height = image.getHeight();
var contentType = image.getContentType();
getData()
Gets the bytes of this image, so that they can be saved to disk or stored the database.
Returns:Array The image data as a byte array for saving or processing.
Sample
var image = plugins.images.getImage(byteArray_or_file_or_filename);//loads the image
image = image.resize(200,200);//resizes it to 200,200
var bytes = image.getData();//gets the image bytes
plugins.file.writeFile('filename',bytes);//saves the image bytes
var image = plugins.images.getImage(byteArray_or_file);
var width = image.getWidth();
var height = image.getHeight();
var contentType = image.getContentType();
getMetaDataDescription(property)
Gets the description of a metadata property from the image. Currently only jpg is supported.
Returns:String The description of the specified metadata property, or null if not found.
Sample
var image = plugins.images.getImage(byteArray_or_file_or_filename);//loads the image
// get the available metadata properties from the image, currently only jpg is supported
var propertiesArray = image.getMetaDataProperties();
for(var i=0;i<propertiesArray.length;i++)
{
var property = propertiesArray[i]
application.output("property: " + property);
application.output("description (string): " + image.getMetaDataDescription(property))
application.output("real object: " + image.getMetaDataObject(property))
}
// Thumbnail data is stored under property 'Exif - Thumbnail Data', extract that and set it in a dataprovider
thumbnail = image.getMetaDataObject("Exif - Thumbnail Data"); // gets thumbnail data from the image
getMetaDataObject(property)
Gets the real object of a metadata property from the image. Currently only jpg is supported.
Returns:Object The metadata object associated with the specified property, or null if not found.
Sample
var image = plugins.images.getImage(byteArray_or_file_or_filename);//loads the image
// get the available metadata properties from the image, currently only jpg is supported
var propertiesArray = image.getMetaDataProperties();
for(var i=0;i<propertiesArray.length;i++)
{
var property = propertiesArray[i]
application.output("property: " + property);
application.output("description (string): " + image.getMetaDataDescription(property))
application.output("real object: " + image.getMetaDataObject(property))
}
// Thumbnail data is stored under property 'Exif - Thumbnail Data', extract that and set it in a dataprovider
thumbnail = image.getMetaDataObject("Exif - Thumbnail Data"); // gets thumbnail data from the image
getMetaDataProperties()
Gets the available metadata properties from the image. Currently only jpg is supported.
Returns:Array An array of metadata property names available in the image.
Sample
var image = plugins.images.getImage(byteArray_or_file_or_filename);//loads the image
// get the available metadata properties from the image, currently only jpg is supported
var propertiesArray = image.getMetaDataProperties();
for(var i=0;i<propertiesArray.length;i++)
{
var property = propertiesArray[i]
application.output("property: " + property);
application.output("description (string): " + image.getMetaDataDescription(property))
application.output("real object: " + image.getMetaDataObject(property))
}
// Thumbnail data is stored under property 'Exif - Thumbnail Data', extract that and set it in a dataprovider
thumbnail = image.getMetaDataObject("Exif - Thumbnail Data"); // gets thumbnail data from the image
var image = plugins.images.getImage(byteArray_or_file);
var width = image.getWidth();
var height = image.getHeight();
var contentType = image.getContentType();
resize(width, height)
Resizes the image to the width/height given, keeping aspect ratio. A new JSImage is returned.
Returns:JSImage A new JSImage instance resized to the specified dimensions, or null if resizing fails.
Sample
var image = plugins.images.getImage(byteArray_or_file_or_filename);//loads the image
image = image.resize(200,200);//resizes it to 200,200
var bytes = image.getData();//gets the image bytes
plugins.file.writeFile('filename',bytes);//saves the image bytes
rotate(degrees)
Rotates the image the number of degrees that is given. A new JSImage is returned.
Returns:JSImage A new JSImage instance rotated by the specified degrees.
Sample
var image = plugins.images.getImage(byteArray_or_file_or_filename);//loads the image
image = image.rotate(90);//rotate the image 90 degrees
var bytes = image.getData();//gets the image bytes
plugins.file.writeFile('filename',bytes);//saves the image bytes