The Imagick::setImageCompression() function is an inbuilt function in PHP which is used to set the image compression type.
Syntax:
bool Imagick::setImageCompression( int $compression )
Parameters: This function accepts a single parameter $compression which holds an integer matching to one of Imagick::COMPRESSION_* constants. Additionally, you can pass the constant directly like $imagick->setImageCompression(imagick::COMPRESSION_DXT1);. List of Compression constants are given below:
- imagick::COMPRESSION_UNDEFINED (0)
- imagick::COMPRESSION_NO (1)
- imagick::COMPRESSION_BZIP (2)
- imagick::COMPRESSION_FAX (6)
- imagick::COMPRESSION_GROUP4 (7)
- imagick::COMPRESSION_JPEG (8)
- imagick::COMPRESSION_JPEG2000 (9)
- imagick::COMPRESSION_LOSSLESSJPEG (10)
- imagick::COMPRESSION_LZW (11)
- imagick::COMPRESSION_RLE (12)
- imagick::COMPRESSION_ZIP (13)
- imagick::COMPRESSION_DXT1 (3)
- imagick::COMPRESSION_DXT3 (4)
- imagick::COMPRESSION_DXT5 (5)
Return Value: This function returns TRUE on success.
Exceptions: This function throws ImagickException on error.
Below programs illustrate the Imagick::setImageCompression() function in PHP:
Program 1:
php
<?php // Create new Imagick Object $imagick = new Imagick( // Set the Compression to COMPRESSION_RLE $imagick ->setImageCompression(imagick::COMPRESSION_RLE); // Get the Compression $compression = $imagick ->getImageCompression(); echo $compression ; ?> |
Output:
12
Program 2:
php
<?php // Create new Imagick Object $imagick = new Imagick( // Set the Compression to COMPRESSION_JPEG $imagick ->setImageCompression(imagick::COMPRESSION_JPEG); // Set the Compression quality // This is where that compression method imagick::COMPRESSION_JPEG is // used in the program. $imagick ->setImageCompressionQuality(5); // Show the output $imagick ->setformat( 'jpg' ); header("Content-Type: image/jpg"); echo $imagick ->getImageBlob(); ?> |
Output:
Reference: https://www.php.net/manual/en/imagick.setimagecompression.php