Skip to content

Commit 7e71457

Browse files
committed
Merge pull request #503 from wodka/master
implement interlace filter
2 parents cf1aadd + 35851b9 commit 7e71457

File tree

7 files changed

+88
-2
lines changed

7 files changed

+88
-2
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
<?php
2+
3+
namespace Liip\ImagineBundle\Imagine\Filter\Loader;
4+
5+
use Imagine\Image\ImageInterface;
6+
7+
class InterlaceFilterLoader implements LoaderInterface
8+
{
9+
/**
10+
* {@inheritDoc}
11+
*/
12+
public function load(ImageInterface $image, array $options = array())
13+
{
14+
$mode = ImageInterface::INTERLACE_LINE;
15+
if (!empty($options['mode'])) {
16+
$mode = $options['mode'];
17+
}
18+
19+
$image->interlace($mode);
20+
21+
return $image;
22+
}
23+
}

Resources/config/imagine.xml

+5
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@
4141
<parameter key="liip_imagine.filter.loader.background.class">Liip\ImagineBundle\Imagine\Filter\Loader\BackgroundFilterLoader</parameter>
4242
<parameter key="liip_imagine.filter.loader.upscale.class">Liip\ImagineBundle\Imagine\Filter\Loader\UpscaleFilterLoader</parameter>
4343
<parameter key="liip_imagine.filter.loader.auto_rotate.class">Liip\ImagineBundle\Imagine\Filter\Loader\AutoRotateFilterLoader</parameter>
44+
<parameter key="liip_imagine.filter.loader.interlace.class">Liip\ImagineBundle\Imagine\Filter\Loader\InterlaceFilterLoader</parameter>
4445

4546
<!-- Data loaders' classes -->
4647

@@ -181,6 +182,10 @@
181182
<tag name="liip_imagine.filter.loader" loader="auto_rotate" />
182183
</service>
183184

185+
<service id="liip_imagine.filter.loader.interlace" class="%liip_imagine.filter.loader.interlace.class%">
186+
<tag name="liip_imagine.filter.loader" loader="interlace" />
187+
</service>
188+
184189
<!-- Data loaders -->
185190

186191
<service id="liip_imagine.binary.loader.prototype.filesystem" class="%liip_imagine.binary.loader.filesystem.class%">

Resources/doc/filters.md

+14
Original file line numberDiff line numberDiff line change
@@ -149,6 +149,20 @@ liip_imagine:
149149
my_thumb:
150150
filters:
151151
auto_rotate: ~
152+
153+
### The `interlace` filter
154+
155+
Set progressive loading on the image
156+
Configuration looks like this:
157+
158+
``` yaml
159+
liip_imagine:
160+
filter_sets:
161+
my_thumb:
162+
filters:
163+
interlace:
164+
# mode can be one of none,line,plane,partition
165+
mode: line
152166
```
153167
## Load your Custom Filters
154168

Tests/Functional/Imagine/DataManagerTest.php renamed to Tests/Functional/Imagine/Data/DataManagerTest.php

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
<?php
2-
namespace Liip\ImagineBundle\Tests\Functional\Imagine;
2+
namespace Liip\ImagineBundle\Tests\Functional\Imagine\Data;
33

44
use Liip\ImagineBundle\Tests\Functional\WebTestCase;
55

Tests/Functional/Imagine/FilterManagerTest.php renamed to Tests/Functional/Imagine/Filter/FilterManagerTest.php

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
<?php
2-
namespace Liip\ImagineBundle\Tests\Functional\Imagine;
2+
namespace Liip\ImagineBundle\Tests\Functional\Imagine\Filter;
33

44
use Liip\ImagineBundle\Tests\Functional\WebTestCase;
55

Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
<?php
2+
namespace Liip\ImagineBundle\Tests\Functional\Imagine\Filter\Loader;
3+
4+
use Liip\ImagineBundle\Tests\Functional\WebTestCase;
5+
6+
class InterlaceFilterLoaderTest extends WebTestCase
7+
{
8+
public function testCouldBeGetFromContainerAsService()
9+
{
10+
$this->createClient();
11+
$service = self::$kernel->getContainer()->get('liip_imagine.filter.loader.interlace');
12+
13+
$this->assertInstanceOf('Liip\ImagineBundle\Imagine\Filter\Loader\InterlaceFilterLoader', $service);
14+
}
15+
}
16+
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
<?php
2+
3+
namespace Liip\ImagineBundle\Tests\Filter;
4+
5+
use Liip\ImagineBundle\Imagine\Filter\Loader\InterlaceFilterLoader;
6+
use Liip\ImagineBundle\Tests\AbstractTest;
7+
8+
/**
9+
* @covers Liip\ImagineBundle\Imagine\Filter\Loader\InterlaceFilterLoader
10+
*/
11+
class InterlaceFilterLoaderTest extends AbstractTest
12+
{
13+
public function testLoad()
14+
{
15+
$loader = new InterlaceFilterLoader();
16+
17+
$image = $this->getMockImage();
18+
$image
19+
->expects($this->once())
20+
->method('interlace')
21+
->with('TEST')
22+
;
23+
24+
$result = $loader->load($image, array('mode' => 'TEST'));
25+
26+
$this->assertInstanceOf('Imagine\Image\ImageInterface', $result);
27+
}
28+
}

0 commit comments

Comments
 (0)