File indexing completed on 2025-01-26 05:29:15
0001 <?php 0002 0003 namespace Intervention\Image\Imagick; 0004 0005 class Encoder extends \Intervention\Image\AbstractEncoder 0006 { 0007 /** 0008 * Processes and returns encoded image as JPEG string 0009 * 0010 * @return string 0011 */ 0012 protected function processJpeg() 0013 { 0014 $format = 'jpeg'; 0015 $compression = \Imagick::COMPRESSION_JPEG; 0016 0017 $imagick = $this->image->getCore(); 0018 $imagick->setImageBackgroundColor('white'); 0019 $imagick->setBackgroundColor('white'); 0020 $imagick = $imagick->mergeImageLayers(\Imagick::LAYERMETHOD_MERGE); 0021 $imagick->setFormat($format); 0022 $imagick->setImageFormat($format); 0023 $imagick->setCompression($compression); 0024 $imagick->setImageCompression($compression); 0025 $imagick->setCompressionQuality($this->quality); 0026 $imagick->setImageCompressionQuality($this->quality); 0027 0028 return $imagick->getImagesBlob(); 0029 } 0030 0031 /** 0032 * Processes and returns encoded image as PNG string 0033 * 0034 * @return string 0035 */ 0036 protected function processPng() 0037 { 0038 $format = 'png'; 0039 $compression = \Imagick::COMPRESSION_ZIP; 0040 0041 $imagick = $this->image->getCore(); 0042 $imagick->setFormat($format); 0043 $imagick->setImageFormat($format); 0044 $imagick->setCompression($compression); 0045 $imagick->setImageCompression($compression); 0046 0047 return $imagick->getImagesBlob(); 0048 } 0049 0050 /** 0051 * Processes and returns encoded image as GIF string 0052 * 0053 * @return string 0054 */ 0055 protected function processGif() 0056 { 0057 $format = 'gif'; 0058 $compression = \Imagick::COMPRESSION_LZW; 0059 0060 $imagick = $this->image->getCore(); 0061 $imagick->setFormat($format); 0062 $imagick->setImageFormat($format); 0063 $imagick->setCompression($compression); 0064 $imagick->setImageCompression($compression); 0065 0066 return $imagick->getImagesBlob(); 0067 } 0068 0069 protected function processWebp() 0070 { 0071 if ( ! \Imagick::queryFormats('WEBP')) { 0072 throw new \Intervention\Image\Exception\NotSupportedException( 0073 "Webp format is not supported by Imagick installation." 0074 ); 0075 } 0076 0077 $format = 'webp'; 0078 $compression = \Imagick::COMPRESSION_JPEG; 0079 0080 $imagick = $this->image->getCore(); 0081 $imagick = $imagick->mergeImageLayers(\Imagick::LAYERMETHOD_MERGE); 0082 $imagick->setFormat($format); 0083 $imagick->setImageFormat($format); 0084 $imagick->setCompression($compression); 0085 $imagick->setImageCompression($compression); 0086 $imagick->setImageCompressionQuality($this->quality); 0087 0088 return $imagick->getImagesBlob(); 0089 } 0090 0091 /** 0092 * Processes and returns encoded image as TIFF string 0093 * 0094 * @return string 0095 */ 0096 protected function processTiff() 0097 { 0098 $format = 'tiff'; 0099 $compression = \Imagick::COMPRESSION_UNDEFINED; 0100 0101 $imagick = $this->image->getCore(); 0102 $imagick->setFormat($format); 0103 $imagick->setImageFormat($format); 0104 $imagick->setCompression($compression); 0105 $imagick->setImageCompression($compression); 0106 $imagick->setCompressionQuality($this->quality); 0107 $imagick->setImageCompressionQuality($this->quality); 0108 0109 return $imagick->getImagesBlob(); 0110 } 0111 0112 /** 0113 * Processes and returns encoded image as BMP string 0114 * 0115 * @return string 0116 */ 0117 protected function processBmp() 0118 { 0119 $format = 'bmp'; 0120 $compression = \Imagick::COMPRESSION_UNDEFINED; 0121 0122 $imagick = $this->image->getCore(); 0123 $imagick->setFormat($format); 0124 $imagick->setImageFormat($format); 0125 $imagick->setCompression($compression); 0126 $imagick->setImageCompression($compression); 0127 0128 return $imagick->getImagesBlob(); 0129 } 0130 0131 /** 0132 * Processes and returns encoded image as ICO string 0133 * 0134 * @return string 0135 */ 0136 protected function processIco() 0137 { 0138 $format = 'ico'; 0139 $compression = \Imagick::COMPRESSION_UNDEFINED; 0140 0141 $imagick = $this->image->getCore(); 0142 $imagick->setFormat($format); 0143 $imagick->setImageFormat($format); 0144 $imagick->setCompression($compression); 0145 $imagick->setImageCompression($compression); 0146 0147 return $imagick->getImagesBlob(); 0148 } 0149 0150 /** 0151 * Processes and returns encoded image as PSD string 0152 * 0153 * @return string 0154 */ 0155 protected function processPsd() 0156 { 0157 $format = 'psd'; 0158 $compression = \Imagick::COMPRESSION_UNDEFINED; 0159 0160 $imagick = $this->image->getCore(); 0161 $imagick->setFormat($format); 0162 $imagick->setImageFormat($format); 0163 $imagick->setCompression($compression); 0164 $imagick->setImageCompression($compression); 0165 0166 return $imagick->getImagesBlob(); 0167 } 0168 }