JSImage

Overview

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.

Methods Summarized

Type
Name
Summary

Flips the image verticaly (type param=0) or horizontaly (type param=1).

Gets the contenttype (image/jpeg) of this image.

Gets the bytes of this image, so that they can be saved to disk or stored the database.

Gets the height of this image.

Gets the description of a metadata property from the image.

Gets the real object of a metadata property from the image.

Gets the available metadata properties from the image.

Gets the width of this image.

Resizes the image to the width/height given, keeping aspect ratio.

Rotates the image the number of degrees that is given.

Methods Detailed

flip(type)

Flips the image verticaly (type param=0) or horizontaly (type param=1). A new JSImage is returned.

Parameters

Returns: JSImage

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

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

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

getHeight()

Gets the height of this image.

Returns: Number

Sample

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.

Parameters

Returns: String

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.

Parameters

Returns: Object

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

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

getWidth()

Gets the width of this image.

Returns: Number

Sample

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.

Parameters

Returns: JSImage

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.

Parameters

Returns: JSImage

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

Last updated