QPx_CompressPicture

QPx_CompressPicture(pictVar; pictVar; pictVar; pictVar; pictVar):error
pictVar Picture Picture variable
codecType Text Codec type
compQuality Longint Compression quality
compDepth Longint Compression depth, optional
compFlags Longint Compression flags, optional
error Longint Error result

Compress a picture variable

This command returns 4D pictures in the new, post v11, picture format. The command essentially is a shortcut for QPx_ExportPictureToBLOB followed by 4D's BLOB TO PICTURE.

The pictVar parameter initially contains the uncompressed picture. When the command completes, it will contain the compressed picture.

The codecType parameter specifies the codec (compressor component) that will do the compression. Use either a codec identifier, as returned by QPx_GetCodecList, or a file format identifier, as returned by QPx_GetExportTypes.

NOTE Codec types are internally mapped to file file format identifiers, as used in commands like QPx_ExportPicture for backwards compatibility.

The compQuality parameter specifies the quality of the compressed picture. Valid values are in the range of 0...1024. QPix defines the following constants for the compQuality parameter:

qpx_MinQuality 0 Minimal quality
qpx_LowQuality 256 Low quality
qpx_NormalQuality 512 Normal quality
qpx_HighQuality 768 High quality
qpx_MaxQuality 1023 Maximum quality
qpx_LosslessQuality 1024 Lossless quality

The compDepth parameter specifies color depth for the compressed image. If omitted or set to 0, QPix uses the original picture depth. Possible values for compDepth are:

qpx_BlackAndWhite 1 Black and white
qpx_FourColors 2 Four colors
qpx_SixteenColors 4 Sixteen colors
qpx_TwoHundredFiftySixColors 8 256 colors
qpx_ThousandsColors 16 Thousands of colors
qpx_MillionColors 24 Million of colors
qpx_MillionColorsPlusAlpha 32 Million of colors plus alpha
qpx_FourGrays 34 Four grays
qpx_SixteenGrays 36 Sixteen grays
qpx_TwoHundredFiftySixGrays 40 256 grays

The optional compFlags parameter specifies additional options. Currently, the only supported option is to display a progress dialog after a short while. To display the progress dialog, set compFlags to 1.

NOTE Not all codecs support all quality and depth values. If a codec does not support the specified values for quality or depth, it will automatically fall back to its respective default values.

NOTE To decompress a picture, compress it with the "raw " (mind the space at the end!) codec, or using QPx_RotatePicture($pict;0) or QPx_ResizePicture($pict;1;1)

Example

   // Compress a picture with the "jpeg" codec

C_LONGINT($error)
C_PICTURE($picture)

$picture:=[Images]Picture

$error:=QPx_CompressPicture ($picture;"jpeg";qpx_NormalQuality)

If ($error=qpx_noErr)
   
   [Images]Picture:=$picture
   
End if 

Related commands

QPx_DoCodecSettingsDialog Display the standard compression settings dialog
QPx_GetCodecList Get the list of available codecs
QPx_GetCompressedPictureInfo Get information about a compressed picture (legacy or new)