Encoder.php 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146
  1. <?php
  2. namespace Intervention\Image\Imagick;
  3. class Encoder extends \Intervention\Image\AbstractEncoder
  4. {
  5. /**
  6. * Processes and returns encoded image as JPEG string
  7. *
  8. * @return string
  9. */
  10. protected function processJpeg()
  11. {
  12. $format = 'jpeg';
  13. $compression = \Imagick::COMPRESSION_JPEG;
  14. $imagick = $this->image->getCore();
  15. $imagick->setImageBackgroundColor('white');
  16. $imagick->setBackgroundColor('white');
  17. $imagick = $imagick->mergeImageLayers(\Imagick::LAYERMETHOD_MERGE);
  18. $imagick->setFormat($format);
  19. $imagick->setImageFormat($format);
  20. $imagick->setCompression($compression);
  21. $imagick->setImageCompression($compression);
  22. $imagick->setCompressionQuality($this->quality);
  23. $imagick->setImageCompressionQuality($this->quality);
  24. return $imagick->getImagesBlob();
  25. }
  26. /**
  27. * Processes and returns encoded image as PNG string
  28. *
  29. * @return string
  30. */
  31. protected function processPng()
  32. {
  33. $format = 'png';
  34. $compression = \Imagick::COMPRESSION_ZIP;
  35. $imagick = $this->image->getCore();
  36. $imagick->setFormat($format);
  37. $imagick->setImageFormat($format);
  38. $imagick->setCompression($compression);
  39. $imagick->setImageCompression($compression);
  40. return $imagick->getImagesBlob();
  41. }
  42. /**
  43. * Processes and returns encoded image as GIF string
  44. *
  45. * @return string
  46. */
  47. protected function processGif()
  48. {
  49. $format = 'gif';
  50. $compression = \Imagick::COMPRESSION_LZW;
  51. $imagick = $this->image->getCore();
  52. $imagick->setFormat($format);
  53. $imagick->setImageFormat($format);
  54. $imagick->setCompression($compression);
  55. $imagick->setImageCompression($compression);
  56. return $imagick->getImagesBlob();
  57. }
  58. /**
  59. * Processes and returns encoded image as TIFF string
  60. *
  61. * @return string
  62. */
  63. protected function processTiff()
  64. {
  65. $format = 'tiff';
  66. $compression = \Imagick::COMPRESSION_UNDEFINED;
  67. $imagick = $this->image->getCore();
  68. $imagick->setFormat($format);
  69. $imagick->setImageFormat($format);
  70. $imagick->setCompression($compression);
  71. $imagick->setImageCompression($compression);
  72. $imagick->setCompressionQuality($this->quality);
  73. $imagick->setImageCompressionQuality($this->quality);
  74. return $imagick->getImagesBlob();
  75. }
  76. /**
  77. * Processes and returns encoded image as BMP string
  78. *
  79. * @return string
  80. */
  81. protected function processBmp()
  82. {
  83. $format = 'bmp';
  84. $compression = \Imagick::COMPRESSION_UNDEFINED;
  85. $imagick = $this->image->getCore();
  86. $imagick->setFormat($format);
  87. $imagick->setImageFormat($format);
  88. $imagick->setCompression($compression);
  89. $imagick->setImageCompression($compression);
  90. return $imagick->getImagesBlob();
  91. }
  92. /**
  93. * Processes and returns encoded image as ICO string
  94. *
  95. * @return string
  96. */
  97. protected function processIco()
  98. {
  99. $format = 'ico';
  100. $compression = \Imagick::COMPRESSION_UNDEFINED;
  101. $imagick = $this->image->getCore();
  102. $imagick->setFormat($format);
  103. $imagick->setImageFormat($format);
  104. $imagick->setCompression($compression);
  105. $imagick->setImageCompression($compression);
  106. return $imagick->getImagesBlob();
  107. }
  108. /**
  109. * Processes and returns encoded image as PSD string
  110. *
  111. * @return string
  112. */
  113. protected function processPsd()
  114. {
  115. $format = 'psd';
  116. $compression = \Imagick::COMPRESSION_UNDEFINED;
  117. $imagick = $this->image->getCore();
  118. $imagick->setFormat($format);
  119. $imagick->setImageFormat($format);
  120. $imagick->setCompression($compression);
  121. $imagick->setImageCompression($compression);
  122. return $imagick->getImagesBlob();
  123. }
  124. }