Skip to content

Commit abfa87d

Browse files
committed
:octocat: properly inject Optimizer instance
1 parent 317cbbc commit abfa87d

File tree

3 files changed

+26
-19
lines changed

3 files changed

+26
-19
lines changed

src/Imagetiler.php

Lines changed: 26 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@
1414

1515
use chillerlan\Traits\ContainerInterface;
1616
use ImageOptimizer\Optimizer;
17-
use ImageOptimizer\OptimizerFactory;
1817
use Imagick;
1918
use Psr\Log\{LoggerAwareInterface, LoggerAwareTrait, LoggerInterface, NullLogger};
2019

@@ -26,22 +25,32 @@ class Imagetiler implements LoggerAwareInterface{
2625
*/
2726
protected $options;
2827

28+
/**
29+
* @var \ImageOptimizer\Optimizer
30+
*/
31+
protected $optimizer;
32+
2933
/**
3034
* Imagetiler constructor.
3135
*
3236
* @param \chillerlan\Traits\ContainerInterface|null $options
37+
* @param \ImageOptimizer\Optimizer $optimizer
3338
* @param \Psr\Log\LoggerInterface|null $logger
3439
*
3540
* @throws \chillerlan\Imagetiler\ImagetilerException
3641
*/
37-
public function __construct(ContainerInterface $options = null, LoggerInterface $logger = null){
42+
public function __construct(ContainerInterface $options = null, Optimizer $optimizer = null, LoggerInterface $logger = null){
3843

3944
if(!extension_loaded('imagick')){
4045
throw new ImagetilerException('Imagick extension is not available');
4146
}
4247

4348
$this->setOptions($options ?? new ImagetilerOptions);
4449
$this->setLogger($logger ?? new NullLogger);
50+
51+
if($optimizer instanceof Optimizer){
52+
$this->setOptimizer($optimizer);
53+
}
4554
}
4655

4756
/**
@@ -81,6 +90,17 @@ public function setOptions(ContainerInterface $options):Imagetiler{
8190
return $this;
8291
}
8392

93+
/**
94+
* @param \ImageOptimizer\Optimizer $optimizer
95+
*
96+
* @return \chillerlan\Imagetiler\Imagetiler
97+
*/
98+
public function setOptimizer(Optimizer $optimizer):Imagetiler{
99+
$this->optimizer = $optimizer;
100+
101+
return $this;
102+
}
103+
84104
/**
85105
* @param string $image_path
86106
* @param string $out_path
@@ -102,13 +122,6 @@ public function process(string $image_path, string $out_path):Imagetiler{
102122

103123
}
104124

105-
// load the optional image optimizer
106-
$optimizer = null;
107-
108-
if($this->options->optimize_output){
109-
$optimizer = (new OptimizerFactory($this->options->optimizer_settings, $this->logger))->get();
110-
}
111-
112125
// prepare the zoom base images
113126
$this->prepareZoomBaseImages($image_path, $out_path);
114127

@@ -122,7 +135,7 @@ public function process(string $image_path, string $out_path):Imagetiler{
122135
throw new ImagetilerException('cannot read base image '.$base_image.' for zoom '.$zoom);
123136
}
124137

125-
$this->createTilesForZoom(new Imagick($base_image), $zoom, $out_path, $optimizer);
138+
$this->createTilesForZoom(new Imagick($base_image), $zoom, $out_path);
126139
}
127140

128141
// clean up base images
@@ -269,12 +282,11 @@ protected function createTilesForZoom(Imagick $im, int $zoom, string $out_path,
269282
*
270283
* @param Imagick $image
271284
* @param string $dest full path with file name
272-
* @param \ImageOptimizer\Optimizer $optimizer
273285
*
274286
* @return void
275287
* @throws \chillerlan\Imagetiler\ImagetilerException
276288
*/
277-
protected function saveImage(Imagick $image, string $dest, Optimizer $optimizer = null):void{
289+
protected function saveImage(Imagick $image, string $dest):void{
278290
$dir = dirname($dest);
279291

280292
if(!is_dir($dir)){
@@ -292,8 +304,8 @@ protected function saveImage(Imagick $image, string $dest, Optimizer $optimizer
292304
throw new ImagetilerException('cannot save image '.$dest);
293305
}
294306

295-
if($optimizer instanceof Optimizer){
296-
$optimizer->optimize($dest);
307+
if($this->options->optimize_output && $this->optimizer instanceof Optimizer){
308+
$this->optimizer->optimize($dest);
297309
}
298310

299311
}

src/ImagetilerOptions.php

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,6 @@
3434
* @property bool $overwrite_tile_image
3535
* @property bool $clean_up
3636
* @property bool $optimize_output
37-
* @property array $optimizer_settings
3837
*/
3938
class ImagetilerOptions extends ContainerAbstract{
4039
use ImagetilerOptionsTrait;

src/ImagetilerOptionsTrait.php

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -152,8 +152,4 @@ trait ImagetilerOptionsTrait{
152152
*/
153153
protected $optimize_output = false;
154154

155-
/**
156-
* @var array
157-
*/
158-
protected $optimizer_settings = [];
159155
}

0 commit comments

Comments
 (0)