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 46 }
47 47 return empty( self::$presets[ $preset ] ) ? null : self::$presets[ $preset ];
48 48 }
49   -
  49 +
50 50 /**
51 51 * Get image HTML for image
52 52 *
53 53 * @param string $file
54 54 * @param array|string $preset
55 55 * @param array $imgOptions
  56 + * @param int $quality
56 57 *
57   - * @see Html::img()
58 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 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 68 * Get src for image
68 69 *
69 70 * @param string $file
70 71 * @param string $preset
71 72 * @param null|string $preset_alias
  73 + * @param int $quality
72 74 *
73 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 79 if (is_string($preset)) {
78 80 $preset_alias = $preset;
... ... @@ -90,7 +92,7 @@
90 92 ) {
91 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 118 {
117 119 return substr_replace($path, self::getDriver()->rootUrl, 0, strlen(self::getDriver()->rootPath));
118 120 }
119   -
  121 +
120 122 /**
121 123 * Get formatted file url or create it if not exist
122 124 *
123 125 * @param string $filePath
124 126 * @param array $preset
125 127 * @param string $preset_alias
  128 + * @param int $quality
126 129 *
127 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 134 $pathinfo = pathinfo($filePath);
132 135 $presetPath = $pathinfo[ 'dirname' ] . '/styles/' . strtolower($preset_alias);
... ... @@ -138,7 +141,7 @@
138 141 if (!file_exists($presetPath)) {
139 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 145 if (!empty( $output )) {
143 146 $f = fopen($presetFilePath, 'w');
144 147 fwrite($f, $output);
... ... @@ -154,13 +157,14 @@
154 157 * * resize
155 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 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 169 $image = self::getDriver()
166 170 ->load($filePath);
... ... @@ -179,7 +183,7 @@
179 183 break;
180 184 }
181 185 }
182   - return $image->render(null, 65);
  186 + return $image->render(null, $quality);
183 187 }
184 188  
185 189 /**
... ...