Commit 8e5f1983394ee1d9985c58066d8ee5eeca1068e3

Authored by Yarik
1 parent 9527e87e

Image helper improve

Showing 1 changed file with 19 additions and 15 deletions   Show diff stats
components/artboximage/ArtboxImageHelper.php
@@ -46,33 +46,35 @@ @@ -46,33 +46,35 @@
46 } 46 }
47 return empty( self::$presets[ $preset ] ) ? null : self::$presets[ $preset ]; 47 return empty( self::$presets[ $preset ] ) ? null : self::$presets[ $preset ];
48 } 48 }
49 - 49 +
50 /** 50 /**
51 * Get image HTML for image 51 * Get image HTML for image
52 * 52 *
53 * @param string $file 53 * @param string $file
54 * @param array|string $preset 54 * @param array|string $preset
55 * @param array $imgOptions 55 * @param array $imgOptions
  56 + * @param int $quality
56 * 57 *
57 - * @see Html::img()  
58 * @return string 58 * @return string
  59 + * @see Html::img()
59 */ 60 */
60 - public static function getImage($file, $preset, $imgOptions = []) 61 + public static function getImage($file, $preset, $imgOptions = [], $quality = 75)
61 { 62 {
62 $preset_alias = is_array($preset) ? array_keys($preset)[ 0 ] : null; 63 $preset_alias = is_array($preset) ? array_keys($preset)[ 0 ] : null;
63 - return Html::img(self::getImageSrc($file, $preset, $preset_alias), $imgOptions); 64 + return Html::img(self::getImageSrc($file, $preset, $preset_alias, $quality), $imgOptions);
64 } 65 }
65 - 66 +
66 /** 67 /**
67 * Get src for image 68 * Get src for image
68 * 69 *
69 * @param string $file 70 * @param string $file
70 * @param string $preset 71 * @param string $preset
71 * @param null|string $preset_alias 72 * @param null|string $preset_alias
  73 + * @param int $quality
72 * 74 *
73 * @return bool|string 75 * @return bool|string
74 */ 76 */
75 - public static function getImageSrc($file, $preset, $preset_alias = null) 77 + public static function getImageSrc($file, $preset, $preset_alias = null, $quality = 75)
76 { 78 {
77 if (is_string($preset)) { 79 if (is_string($preset)) {
78 $preset_alias = $preset; 80 $preset_alias = $preset;
@@ -90,7 +92,7 @@ @@ -90,7 +92,7 @@
90 ) { 92 ) {
91 return $file; 93 return $file;
92 } 94 }
93 - return self::getPresetUrl($filePath, $preset, $preset_alias); 95 + return self::getPresetUrl($filePath, $preset, $preset_alias, $quality);
94 } 96 }
95 97
96 /** 98 /**
@@ -116,17 +118,18 @@ @@ -116,17 +118,18 @@
116 { 118 {
117 return substr_replace($path, self::getDriver()->rootUrl, 0, strlen(self::getDriver()->rootPath)); 119 return substr_replace($path, self::getDriver()->rootUrl, 0, strlen(self::getDriver()->rootPath));
118 } 120 }
119 - 121 +
120 /** 122 /**
121 * Get formatted file url or create it if not exist 123 * Get formatted file url or create it if not exist
122 * 124 *
123 * @param string $filePath 125 * @param string $filePath
124 * @param array $preset 126 * @param array $preset
125 * @param string $preset_alias 127 * @param string $preset_alias
  128 + * @param int $quality
126 * 129 *
127 * @return bool|string 130 * @return bool|string
128 */ 131 */
129 - private static function getPresetUrl($filePath, $preset, $preset_alias) 132 + private static function getPresetUrl($filePath, $preset, $preset_alias, $quality = 75)
130 { 133 {
131 $pathinfo = pathinfo($filePath); 134 $pathinfo = pathinfo($filePath);
132 $presetPath = $pathinfo[ 'dirname' ] . '/styles/' . strtolower($preset_alias); 135 $presetPath = $pathinfo[ 'dirname' ] . '/styles/' . strtolower($preset_alias);
@@ -138,7 +141,7 @@ @@ -138,7 +141,7 @@
138 if (!file_exists($presetPath)) { 141 if (!file_exists($presetPath)) {
139 @mkdir($presetPath, 0777, true); 142 @mkdir($presetPath, 0777, true);
140 } 143 }
141 - $output = self::createPresetImage($filePath, $preset, $preset_alias); 144 + $output = self::createPresetImage($filePath, $preset, $preset_alias, $quality);
142 if (!empty( $output )) { 145 if (!empty( $output )) {
143 $f = fopen($presetFilePath, 'w'); 146 $f = fopen($presetFilePath, 'w');
144 fwrite($f, $output); 147 fwrite($f, $output);
@@ -154,13 +157,14 @@ @@ -154,13 +157,14 @@
154 * * resize 157 * * resize
155 * * flip 158 * * flip
156 * 159 *
157 - * @param string $filePath  
158 - * @param array $preset  
159 - * @param string $preset_alias 160 + * @param string $filePath
  161 + * @param array $preset
  162 + * @param string $preset_alias
  163 + * @param integer $quality
160 * 164 *
161 * @return string 165 * @return string
162 */ 166 */
163 - private static function createPresetImage($filePath, $preset, $preset_alias) 167 + private static function createPresetImage($filePath, $preset, $preset_alias, $quality = 75)
164 { 168 {
165 $image = self::getDriver() 169 $image = self::getDriver()
166 ->load($filePath); 170 ->load($filePath);
@@ -179,7 +183,7 @@ @@ -179,7 +183,7 @@
179 break; 183 break;
180 } 184 }
181 } 185 }
182 - return $image->render(null, 65); 186 + return $image->render(null, $quality);
183 } 187 }
184 188
185 /** 189 /**