IMAGE_WRITE Function

Writes the contents of a PV‑WAVE image associative array to a file in the specified image format.

Tip: If you have 64-bit PV‑WAVE and need to read and write images up to 32-bits without constraints on data size, use the PHOTO OPI routines.

Usage

    status = IMAGE_WRITE(filename, image)

Input Parameters

filename—A string specifying the pathname and filename of the image file to write. This parameter can also be a null string (see Discussion).

image—An image associative array.

Returned Value

status—A value indicating the success or failure of the function.

  • < 0—Indicates an error, such as an invalid input array. An informational message describing the error is also output to the screen.

  • 0—Indicates a successful write.

Keywords

Compress—If zero, and if the requested image file type allows compression, the image file is written in compressed form. (See Discussion.)

File_type—A string specifying an image file type. Valid values are:

BMP

MIFF

TGA

XWD

DICM

PCD

TIFF

XPM

GIF

PCX

TIFF16

XBM

JPEG

PNG

TIF

 

JPG

SUN

GEOTIFF

 

Refer to IMAGE_READ Function for more information about the valid image file types.

MapColors—When this keyword is set and a colormap is present in the image associative array PV‑WAVE maps the colormap into the pixel array when it writes the image out, potentially changing the pixel data. This affects only 24-bit RGB images. By default, the colormap in the image associative array is ignored when 24-bit RGB images are written out.

Overwrite—If the specified file already exists, overwrite it.

Quality—Sets the quality level of JPEG compression. (Default: 100)

Quiet—Suppresses successive levels of error messages, depending on the value set. This keyword accepts the same integer values used with the system variable !Quiet.

Verbose—If nonzero, information about the written image is displayed.

Discussion

Before writing a file, the IMAGE_WRITE function checks to make sure that the input array is a valid image associative array, and that the keys of the array contain data consistent with the expected values. Refer to the IMAGE_CREATE function for detailed information on the structure of the image associative array.

IMAGE_READ Function lists file formats that you can write and read using the IMAGE_WRITE and IMAGE_READ functions, respectively. The table also shows the conversions that are performed on particular file types.

Note: The input parameter, image, must be created with either the IMAGE_READ or IMAGE_CREATE routine.

The rules of precedence for determining the file type are:

  1. Use the value of the File_Type keyword.

  2. Use the suffix given as part of the filename given in the filename parameter. The suffix will be recognized if it is for one of the supported file types.

  3. Use file type specified in the file_type key of image associative array.

  4. Use the suffix given in the file_name key of the image associative array.

If the filename parameter is a null string, the filename is taken from the file_name key of the image associative array. In this case, the filename suffix will be changed to match the file type as determined by the rules of precedence above.

Note:

You can use the File_Type keyword to convert image files from one format to another. For example, if you read a JPEG file, you can convert it to a Sun Rasterfile by writing it with the following command:

status = IMAGE_WRITE('', image, File_Type = 'SUN') 

If the image has been created from the file picture.jpeg, this command will write a file picture.sun.

Compression Algorithms lists the available compression algorithms.

Compression Algorithms

Supported Image File Types

Compression Algorithm

BMP, PCX

RLE

JPEG, PCD, XPM, XBM

JPEG

TIFF, PNG

Zip

MIFF, TGA, SUN, XWD

None

GIF

LZW

DICOM notes

If File_Type is set to ‘DICM’ and the 'Comments' key of the image associative array is an empty string, IMAGE_WRITE adds the valid File Meta Information and the DICOM tags to the 'Comments' key. The content of this header is the following ASCII DICOM tags representation stored in a string array.

  • (0002,0000) FileMetaInformationGroupLength

  • (0002,0001) FileMetaInformationVersion

  • (0002,0002) MediaStorageSOPClassUID

  • (0002,0003) MediaStorageSOPInstanceUID

  • (0002,0010) TransferSyntaxUID

  • (0002,0012) ImplementationClassUID

  • (0002,0013) ImplementationVersionName

  • (0002,0016) SourceApplicationEntityTitle

  • (0002,0100) PrivateInformationCreatorUID

  • (0002,0102) PrivateInformation

  • (0008,0016) SOPClassUID

  • (0008,0018) SOPInstanceUID

  • (0008,0064) ConversionType

  • (0020,000D) StudyInstanceUID

  • (0020,000E) SeriesInstanceUID

  • (0028,0002) SamplesPerPixel

  • (0028,0004) PhotometricInterpretation

  • (0028,0006) Planar Configuration

  • (0028,0010) Rows

  • (0028,0011) Columns

  • (0028,0030) PixelSpacing

  • (0028,0100) BitsAllocated

  • (0028,0101) BitsStored

  • (0028,0102) HighBit

  • (0028,0103) PixelRepresentation

  • (7FE0,0010) PixelData

Note:

If you are using the tag (0028,0006) Planar Configuration when creating 24-bit colored DICM images, use either of the following values:

  • If the value is 0, then they are grouped by location, e.g.:

         RGBRGBRGBRGBRGB

  • If the value is 1, then they are grouped by sample, e.g.:

         RRRRR......GGGGG.......BBBBB.....

Saving an XPM file as a TGA file

Reading a 24-bit XPM file on Unix and writing it as a TGA file results in the image being flipped along the X axis.

Example

This example writes image file flowers.sun in Sun Rasterfile format, in the current directory.

; Reads the file veggies.jpg and returns the
; image associative array.
veggies = IMAGE_READ(!Dir + '/demo/gallery3/data/veggies.jpg')

; Create an image file in Sun Rasterfile format.
status = IMAGE_WRITE('veggies.sun', veggies)
 

See Also

IMAGE_CREATE, IMAGE_DISPLAY, IMAGE_READ, DICM_TAG_INFO, TVSCL

System Variables: !Quiet