b = image_name.save(image_file_pathʃ, quality := qualityʅ);
The
Image.save function writes the contents of the
Image object to a file specified by the string expression
image_file_path. The image can be saved in the following formats, with the format determined by the file extension:
- JPEG (.jpg/.jpeg).
- PNG (.png).
- WebP (.webp).
- BMP (.bmp).
- ICO (.ico).
Although
GIF (.gif) files can be
loaded, images cannot be saved to this format.
When saving to
JPEG or lossy
WebP formats, the quality can be specified using a
named argument. The numeric expression
quality must be a value from 0 to 100, with 100 being the best quality. If not specified, a value of 95 is used. The file size will be bigger the higher the quality number. WebP files can contain lossy or lossless image data. To save as a lossless WebP, use the value of
notappl for
quality. This quality value is ignored if not saving to JPEG or WebP formats.
ICO files have a maximum dimension of 256, and the image will be
resampled prior to saving if either of the image's dimensions exceed this value.
The function returns a logical value of 1 (
true) if the image was saved, 0 (
false) if there was an error writing the file, and
default if the Image object does not contain an image.
Image roof_photo;
if roof_photo.takePhoto("Take a photo of the household's roof.") then
// in case the device's camera takes photos with an unnecessarily
// large resolution, resample the image to a more reasonable size
roof_photo.resample(maxWidth := 1600, maxHeight := 1200);
// save the image using the household key...
string base_filename = Path.concat(application, "Roof Photos", key(HH_DICT));
// ...with 90 quality to prevent the JPEG from being too large
roof_photo.save(base_filename + ".jpg", quality := 90);
endif;