EZ-Components
@@ -0,0 +1,614 @@
|
||||
<?php
|
||||
/**
|
||||
* ezcImageConversionConverterTest
|
||||
*
|
||||
* @package ImageConversion
|
||||
* @version 1.3.5
|
||||
* @copyright Copyright (C) 2005-2008 eZ systems as. All rights reserved.
|
||||
* @license http://ez.no/licenses/new_bsd New BSD License
|
||||
*/
|
||||
|
||||
require_once dirname( __FILE__ ) . "/test_case.php";
|
||||
|
||||
/**
|
||||
* Test suite for ImageConverter class.
|
||||
*
|
||||
* @package ImageConversion
|
||||
* @version 1.3.5
|
||||
*/
|
||||
class ezcImageConversionConverterTest extends ezcImageConversionTestCase
|
||||
{
|
||||
|
||||
protected $converter;
|
||||
|
||||
public static function suite()
|
||||
{
|
||||
return new PHPUnit_Framework_TestSuite( "ezcImageConversionConverterTest" );
|
||||
}
|
||||
|
||||
protected function setUp()
|
||||
{
|
||||
try
|
||||
{
|
||||
$conversionsIn = array(
|
||||
"image/gif" => "image/png",
|
||||
"image/xpm" => "image/jpeg",
|
||||
"image/wbmp" => "image/jpeg",
|
||||
);
|
||||
if ( ezcBaseFeatures::os() === 'Windows' )
|
||||
{
|
||||
unset( $conversionsIn["image/xpm"] );
|
||||
}
|
||||
$settings = new ezcImageConverterSettings(
|
||||
array( new ezcImageHandlerSettings( "GD", "ezcImageGdHandler" ) ),
|
||||
$conversionsIn
|
||||
);
|
||||
$this->converter = new ezcImageConverter( $settings );
|
||||
}
|
||||
catch ( Exception $e )
|
||||
{
|
||||
$this->markTestSkipped( $e->getMessage() );
|
||||
}
|
||||
}
|
||||
|
||||
protected function tearDown()
|
||||
{
|
||||
unset( $this->converter );
|
||||
}
|
||||
|
||||
// Constructor tests
|
||||
|
||||
public function testConstructSingleHandlerSuccess()
|
||||
{
|
||||
$conversionsIn = array(
|
||||
"image/gif" => "image/png",
|
||||
"image/xpm" => "image/jpeg",
|
||||
"image/wbmp" => "image/jpeg",
|
||||
);
|
||||
if ( ezcBaseFeatures::os() === 'Windows' )
|
||||
{
|
||||
unset( $conversionsIn["image/xpm"] );
|
||||
}
|
||||
try
|
||||
{
|
||||
$settings = new ezcImageConverterSettings( array( new ezcImageHandlerSettings( "GD", "ezcImageGdHandler" ) ),
|
||||
$conversionsIn );
|
||||
$converter = new ezcImageConverter( $settings );
|
||||
}
|
||||
catch ( Exception $e )
|
||||
{
|
||||
$this->markTestSkipped();
|
||||
}
|
||||
|
||||
$handlers = $this->readAttribute( $converter, "handlers" );
|
||||
$settings = $this->readAttribute( $converter, "settings" );
|
||||
|
||||
$this->assertType(
|
||||
"ezcImageGdHandler",
|
||||
$handlers["GD"],
|
||||
"Handler <GD> is not an instance of ezcImageGdHandler."
|
||||
);
|
||||
$this->assertEquals(
|
||||
$conversionsIn,
|
||||
$settings->conversions,
|
||||
"Conversions not registered successfully."
|
||||
);
|
||||
}
|
||||
|
||||
public function testConstructFailureInvalidSettings()
|
||||
{
|
||||
$conversionsIn = array(
|
||||
"image/gif" => "image/png",
|
||||
"image/xpm" => "image/jpeg",
|
||||
"image/wbmp" => "image/jpeg",
|
||||
);
|
||||
if ( ezcBaseFeatures::os() === 'Windows' )
|
||||
{
|
||||
unset( $conversionsIn["image/xpm"] );
|
||||
}
|
||||
try
|
||||
{
|
||||
$settings = new ezcImageConverterSettings(
|
||||
array( new stdClass() ),
|
||||
$conversionsIn
|
||||
);
|
||||
$converter = new ezcImageConverter( $settings );
|
||||
$this->fail( 'Exception not thrown on invalid handler settings.' );
|
||||
}
|
||||
catch ( ezcImageHandlerSettingsInvalidException $e )
|
||||
{}
|
||||
}
|
||||
|
||||
public function testConstructSingleHandlerFailureOutputMimeTypeNotSupported()
|
||||
{
|
||||
$conversionsIn = array(
|
||||
"image/gif" => "image/png",
|
||||
"image/xpm" => "application/ezc",
|
||||
"image/wbmp" => "image/jpeg",
|
||||
);
|
||||
$settings = new ezcImageConverterSettings(
|
||||
array( new ezcImageHandlerSettings( "GD", "ezcImageGdHandler" ) ),
|
||||
$conversionsIn
|
||||
);
|
||||
try
|
||||
{
|
||||
$converter = new ezcImageConverter( $settings );
|
||||
}
|
||||
catch ( ezcImageMimeTypeUnsupportedException $e )
|
||||
{
|
||||
return;
|
||||
}
|
||||
$this->fail( "Expected excption not thrown when creating ezcImageConverter with unsupported conversion." );
|
||||
}
|
||||
|
||||
public function testConstructSingleHandlerFailureInputMimeTypeNotSupported()
|
||||
{
|
||||
$conversionsIn = array(
|
||||
"image/gif" => "image/png",
|
||||
"image/ezc" => "image/jpeg",
|
||||
"image/wbmp" => "image/jpeg",
|
||||
);
|
||||
$settings = new ezcImageConverterSettings(
|
||||
array( new ezcImageHandlerSettings( "GD", "ezcImageGdHandler" ) ),
|
||||
$conversionsIn
|
||||
);
|
||||
|
||||
try
|
||||
{
|
||||
$converter = new ezcImageConverter( $settings );
|
||||
}
|
||||
catch ( ezcImageMimeTypeUnsupportedException $e )
|
||||
{
|
||||
return;
|
||||
}
|
||||
$this->fail( "Expected excption not thrown when creating ezcImageConverter with unsupported conversion." );
|
||||
}
|
||||
|
||||
public function testConstructSingleHandlerFailureHandlerNotAvailable()
|
||||
{
|
||||
$conversionsIn = array(
|
||||
"image/gif" => "image/png",
|
||||
"image/xpm" => "image/jpeg",
|
||||
"image/wbmp" => "image/jpeg",
|
||||
);
|
||||
$settings = new ezcImageConverterSettings(
|
||||
array( new ezcImageHandlerSettings( "Toby", "fooImageHandlerToby" ) ),
|
||||
$conversionsIn
|
||||
);
|
||||
try
|
||||
{
|
||||
$converter = new ezcImageConverter( $settings );
|
||||
}
|
||||
catch ( ezcImageHandlerNotAvailableException $e )
|
||||
{
|
||||
return;
|
||||
}
|
||||
$this->fail( "Expected excption not thrown when creating ezcImageConverter with unsupported handler." );
|
||||
}
|
||||
|
||||
// Transformation tests
|
||||
|
||||
public function testCreateTransformation()
|
||||
{
|
||||
$transformation = $this->converter->createTransformation( "thumbnail", array(), array() );
|
||||
$this->assertType(
|
||||
"ezcImageTransformation",
|
||||
$transformation,
|
||||
"Converter does not return created transformation."
|
||||
);
|
||||
}
|
||||
|
||||
// Issue #12667: ezcImageConverter doesn't pass saveOptions to
|
||||
// ezcImageTransformation.'
|
||||
public function testCreateTransformationWithSaveOptions()
|
||||
{
|
||||
$options = new ezcImageSaveOptions();
|
||||
$transformation = $this->converter->createTransformation( "thumbnail", array(), array(), $options );
|
||||
$this->assertAttributeSame(
|
||||
$options,
|
||||
'saveOptions',
|
||||
$transformation,
|
||||
"Converter did not pass save options correctly."
|
||||
);
|
||||
}
|
||||
|
||||
// MIME type tests
|
||||
|
||||
public function testAllowsInputSuccess()
|
||||
{
|
||||
$this->assertTrue(
|
||||
$this->converter->allowsInput( "image/jpeg" ),
|
||||
"Converter does not allow input MIME type <image/jpeg>. This sounds impossible..."
|
||||
);
|
||||
}
|
||||
|
||||
public function testAllowsInputFailure()
|
||||
{
|
||||
$this->assertFalse(
|
||||
$this->converter->allowsInput( "application/ezc" ),
|
||||
"Converter allows input MIME type <application/ezc>. This sounds impossible..."
|
||||
);
|
||||
}
|
||||
|
||||
public function testAllowsOutputSuccess()
|
||||
{
|
||||
$this->assertTrue(
|
||||
$this->converter->allowsOutput( "image/jpeg" ),
|
||||
"Converter does not allow output MIME type <image/jpeg>. This sounds impossible..."
|
||||
);
|
||||
}
|
||||
|
||||
public function testAllowsOutputFailure()
|
||||
{
|
||||
$this->assertFalse(
|
||||
$this->converter->allowsOutput( "application/ezc" ),
|
||||
"Converter allows output MIME type <application/ezc>. This sounds impossible..."
|
||||
);
|
||||
}
|
||||
|
||||
public function testGetMimeOutSuccessConversionPerformed()
|
||||
{
|
||||
$this->assertEquals(
|
||||
"image/png",
|
||||
$this->converter->getMimeOut( "image/gif" ),
|
||||
"Converter converted MIME type incorrectly."
|
||||
);
|
||||
}
|
||||
|
||||
public function testGetMimeOutSuccessNoConversionPerformed()
|
||||
{
|
||||
$this->assertEquals(
|
||||
"image/jpeg",
|
||||
$this->converter->getMimeOut( "image/jpeg" ),
|
||||
"Converter converted MIME type incorrectly."
|
||||
);
|
||||
}
|
||||
|
||||
public function testGetMimeOutFailure()
|
||||
{
|
||||
try
|
||||
{
|
||||
$this->converter->getMimeOut( "application/ezc" );
|
||||
}
|
||||
catch ( ezcImageMimeTypeUnsupportedException $e )
|
||||
{
|
||||
return;
|
||||
}
|
||||
$this->fail( "Expected exception not thrown when getting output MIME type for invalid input type." );
|
||||
}
|
||||
|
||||
// Filter tests
|
||||
|
||||
public function testHasFilterSuccess()
|
||||
{
|
||||
$this->assertTrue(
|
||||
$this->converter->hasFilter( "scale" ),
|
||||
"Converter does not have filter <scale>. This sounds impossible..."
|
||||
);
|
||||
}
|
||||
|
||||
public function testHasFilterFailure()
|
||||
{
|
||||
$this->assertFalse(
|
||||
$this->converter->hasFilter( "ezc" ),
|
||||
"Converter has filter <ezc>. This sounds impossible..."
|
||||
);
|
||||
}
|
||||
|
||||
public function testGetFilterNamesIncluded()
|
||||
{
|
||||
$standardFilters = array(
|
||||
"scale",
|
||||
"scaleWidth",
|
||||
"scaleHeight",
|
||||
"scalePercent",
|
||||
"scaleExact",
|
||||
"crop",
|
||||
"colorspace",
|
||||
);
|
||||
$this->assertEquals(
|
||||
array_intersect( $standardFilters, $this->converter->getFilterNames() ),
|
||||
$standardFilters,
|
||||
"Converter seems not to support standard filters from GD."
|
||||
);
|
||||
}
|
||||
|
||||
public function testGetFilterNamesExcluded()
|
||||
{
|
||||
$impossibleFilters = array(
|
||||
"__construct",
|
||||
"__destruct",
|
||||
"__get",
|
||||
"__set",
|
||||
"__call",
|
||||
);
|
||||
$this->assertEquals(
|
||||
array_intersect( $impossibleFilters, $this->converter->getFilterNames() ),
|
||||
array(),
|
||||
"Converter seems to support impossible filters."
|
||||
);
|
||||
}
|
||||
|
||||
// Conversion tests
|
||||
|
||||
public function testApplyFilterSuccessScale()
|
||||
{
|
||||
$srcPath = $this->testFiles["jpeg"];
|
||||
$dstPath = $this->getTempPath();
|
||||
|
||||
|
||||
$this->converter->applyFilter(
|
||||
new ezcImageFilter(
|
||||
"scale",
|
||||
array( "width" => 10, "height" => 10, "direction" => ezcImageGeometryFilters::SCALE_DOWN )
|
||||
),
|
||||
$srcPath,
|
||||
$dstPath
|
||||
);
|
||||
|
||||
$this->assertImageSimilar(
|
||||
$this->getReferencePath(),
|
||||
$dstPath,
|
||||
"Image comparison failed.",
|
||||
2000
|
||||
);
|
||||
}
|
||||
|
||||
public function testApplyFilterSuccessColorspace()
|
||||
{
|
||||
$srcPath = $this->testFiles["jpeg"];
|
||||
$dstPath = $this->getTempPath();
|
||||
|
||||
|
||||
$this->converter->applyFilter( new ezcImageFilter( "colorspace", array( "space" => ezcImageColorspaceFilters::COLORSPACE_MONOCHROME ) ),
|
||||
$srcPath, $dstPath );
|
||||
|
||||
$this->assertImageSimilar(
|
||||
$this->getReferencePath(),
|
||||
$dstPath,
|
||||
"Image comparison failed.",
|
||||
2000
|
||||
);
|
||||
}
|
||||
|
||||
public function testApplyFilterSuccessColorspaceDefinedHandler()
|
||||
{
|
||||
$srcPath = $this->testFiles['jpeg'];
|
||||
$dstPath = $this->getTempPath();
|
||||
|
||||
|
||||
$this->converter->applyFilter(
|
||||
new ezcImageFilter(
|
||||
'colorspace',
|
||||
array(
|
||||
'space' => ezcImageColorspaceFilters::COLORSPACE_MONOCHROME
|
||||
)
|
||||
),
|
||||
$srcPath,
|
||||
$dstPath,
|
||||
'GD'
|
||||
);
|
||||
|
||||
$this->assertImageSimilar(
|
||||
$this->getReferencePath(),
|
||||
$dstPath,
|
||||
"Image comparison failed.",
|
||||
2000
|
||||
);
|
||||
}
|
||||
|
||||
public function testApplyFilterFailureHandlerNotAvailable()
|
||||
{
|
||||
$srcPath = $this->testFiles["jpeg"];
|
||||
$dstPath = $this->getTempPath();
|
||||
|
||||
try
|
||||
{
|
||||
$this->converter->applyFilter(
|
||||
new ezcImageFilter( "colorspace", array( "space" => ezcImageColorspaceFilters::COLORSPACE_MONOCHROME ) ),
|
||||
$srcPath,
|
||||
$dstPath,
|
||||
"ezc"
|
||||
);
|
||||
}
|
||||
catch ( ezcImageHandlerNotAvailableException $e )
|
||||
{
|
||||
return;
|
||||
}
|
||||
$this->fail( "Converter did not throw exception on not available handler while applying filter." );
|
||||
}
|
||||
|
||||
public function testApplyFilterFailurewFilterNotAvailable()
|
||||
{
|
||||
$srcPath = $this->testFiles["jpeg"];
|
||||
$dstPath = $this->getTempPath();
|
||||
|
||||
try
|
||||
{
|
||||
$this->converter->applyFilter(
|
||||
new ezcImageFilter( "ezc", array() ),
|
||||
$srcPath,
|
||||
$dstPath
|
||||
);
|
||||
}
|
||||
catch ( ezcImageFilterNotAvailableException $e )
|
||||
{
|
||||
return;
|
||||
}
|
||||
$this->fail( "Converter did not throw exception on not available filter while applying filter." );
|
||||
}
|
||||
|
||||
// Handler retrieval tests
|
||||
|
||||
public function testGetHandlerSuccessNoFilterNoInNoOut()
|
||||
{
|
||||
$this->assertType(
|
||||
"ezcImageHandler",
|
||||
$this->converter->getHandler(),
|
||||
"Returned object is not an ezcImageHandler."
|
||||
);
|
||||
}
|
||||
|
||||
public function testGetHandlerSuccessFilterNoInNoOut()
|
||||
{
|
||||
$this->assertType(
|
||||
"ezcImageHandler",
|
||||
$this->converter->getHandler( "scale" ),
|
||||
"Returned object is not an ezcImageHandler."
|
||||
);
|
||||
}
|
||||
|
||||
public function testGetHandlerSuccessNoFilterInNoOut()
|
||||
{
|
||||
$this->assertType(
|
||||
"ezcImageHandler",
|
||||
$this->converter->getHandler( null, "image/jpeg" ),
|
||||
"Returned object is not an ezcImageHandler."
|
||||
);
|
||||
}
|
||||
|
||||
public function testGetHandlerSuccessNoFilterNoInOut()
|
||||
{
|
||||
$this->assertType(
|
||||
"ezcImageHandler",
|
||||
$this->converter->getHandler( null, null, "image/jpeg" ),
|
||||
"Returned object is not an ezcImageHandler."
|
||||
);
|
||||
}
|
||||
|
||||
public function testGetHandlerSuccessFilterInOut()
|
||||
{
|
||||
$this->assertType(
|
||||
"ezcImageHandler",
|
||||
$this->converter->getHandler( "scale", "image/jpeg", "image/jpeg" ),
|
||||
"Returned object is not an ezcImageHandler."
|
||||
);
|
||||
}
|
||||
|
||||
public function testGetHandlerFailureFilterNoInNoOut()
|
||||
{
|
||||
try
|
||||
{
|
||||
$this->converter->getHandler( "ezc" );
|
||||
}
|
||||
catch ( ezcImageHandlerNotAvailableException $e )
|
||||
{
|
||||
return;
|
||||
}
|
||||
$this->fail( "Converter did not throw exception on request of impossible handler." );
|
||||
}
|
||||
|
||||
public function testGetHandlerFailureNoFilterInNoOut()
|
||||
{
|
||||
try
|
||||
{
|
||||
$this->converter->getHandler( null, "application/ezc" );
|
||||
}
|
||||
catch ( ezcImageHandlerNotAvailableException $e )
|
||||
{
|
||||
return;
|
||||
}
|
||||
$this->fail( "Converter did not throw exception on request of impossible handler." );
|
||||
}
|
||||
|
||||
public function testGetHandlerFailureNoFilterNoInOut()
|
||||
{
|
||||
try
|
||||
{
|
||||
$this->converter->getHandler( null, null, "application/ezc" );
|
||||
}
|
||||
catch ( ezcImageHandlerNotAvailableException $e )
|
||||
{
|
||||
return;
|
||||
}
|
||||
$this->fail( "Converter did not throw exception on request of impossible handler." );
|
||||
}
|
||||
|
||||
public function testGetHandlerFailureNotAvailableFilterInOut()
|
||||
{
|
||||
try
|
||||
{
|
||||
$this->converter->getHandler( "ezc", "application/ezc", "application/ezc" );
|
||||
}
|
||||
catch ( ezcImageHandlerNotAvailableException $e )
|
||||
{
|
||||
return;
|
||||
}
|
||||
$this->fail( "Converter did not throw exception on request of impossible handler." );
|
||||
}
|
||||
|
||||
public function testCreateTransformationFailureCreatedTwice()
|
||||
{
|
||||
$this->converter->createTransformation( 'foo', array(), array() );
|
||||
|
||||
try
|
||||
{
|
||||
$this->converter->createTransformation( 'foo', array(), array() );
|
||||
$this->fail( 'Expected not thrown on double created transformation.' );
|
||||
}
|
||||
catch ( ezcImageTransformationAlreadyExistsException $e )
|
||||
{}
|
||||
}
|
||||
|
||||
public function testRemoveTransformationSuccess()
|
||||
{
|
||||
$this->converter->createTransformation( 'foo', array(), array() );
|
||||
$transformations = $this->readAttribute( $this->converter, "transformations" );
|
||||
|
||||
$this->assertEquals(
|
||||
1,
|
||||
count( $transformations )
|
||||
);
|
||||
|
||||
$this->converter->removeTransformation( 'foo' );
|
||||
|
||||
$transformations = $this->readAttribute( $this->converter, "transformations" );
|
||||
$this->assertEquals(
|
||||
0,
|
||||
count( $transformations )
|
||||
);
|
||||
}
|
||||
|
||||
public function testRemoveTransformationFailureNotExists()
|
||||
{
|
||||
try
|
||||
{
|
||||
$this->converter->removeTransformation( 'foo' );
|
||||
$this->fail( 'Expected not thrown on remove of non-existent transformation.' );
|
||||
}
|
||||
catch ( ezcImageTransformationNotAvailableException $e )
|
||||
{}
|
||||
}
|
||||
|
||||
public function testApplyTransformationSuccess()
|
||||
{
|
||||
$srcPath = $this->testFiles["jpeg"];
|
||||
$dstPath = $this->getTempPath();
|
||||
|
||||
$this->converter->createTransformation(
|
||||
'foo',
|
||||
array(
|
||||
new ezcImageFilter(
|
||||
"colorspace",
|
||||
array(
|
||||
"space" => ezcImageColorspaceFilters::COLORSPACE_MONOCHROME
|
||||
)
|
||||
),
|
||||
),
|
||||
array( 'image/jpeg' )
|
||||
);
|
||||
$this->converter->transform( 'foo', $srcPath, $dstPath );
|
||||
}
|
||||
|
||||
public function testApplyTransformationFailureNonExistent()
|
||||
{
|
||||
try
|
||||
{
|
||||
$this->converter->transform( 'foo', '', '' );
|
||||
$this->fail( 'Expected not thrown when non-existent transformation should be applied.' );
|
||||
}
|
||||
catch ( ezcImageTransformationNotAvailableException $e )
|
||||
{}
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
After Width: | Height: | Size: 6.6 KiB |
|
After Width: | Height: | Size: 6.6 KiB |
|
After Width: | Height: | Size: 740 B |
|
After Width: | Height: | Size: 4.5 KiB |
|
After Width: | Height: | Size: 6.6 KiB |
|
After Width: | Height: | Size: 4.6 KiB |
|
After Width: | Height: | Size: 1.5 KiB |
|
After Width: | Height: | Size: 1.4 KiB |
|
After Width: | Height: | Size: 1.5 KiB |
|
After Width: | Height: | Size: 2.2 KiB |
|
After Width: | Height: | Size: 1.5 KiB |
|
After Width: | Height: | Size: 95 B |
|
After Width: | Height: | Size: 717 B |
|
After Width: | Height: | Size: 1.3 KiB |
|
After Width: | Height: | Size: 1.3 KiB |
|
After Width: | Height: | Size: 1.7 KiB |
|
After Width: | Height: | Size: 1.1 KiB |
|
After Width: | Height: | Size: 1.9 KiB |
|
After Width: | Height: | Size: 1.9 KiB |
|
After Width: | Height: | Size: 1.5 KiB |
|
After Width: | Height: | Size: 2.6 KiB |
|
After Width: | Height: | Size: 5.0 KiB |
|
After Width: | Height: | Size: 5.2 KiB |
|
After Width: | Height: | Size: 5.0 KiB |
|
After Width: | Height: | Size: 4.9 KiB |
|
After Width: | Height: | Size: 5.5 KiB |
|
After Width: | Height: | Size: 5.6 KiB |
|
After Width: | Height: | Size: 3.9 KiB |
|
After Width: | Height: | Size: 7.1 KiB |
|
After Width: | Height: | Size: 5.1 KiB |
|
After Width: | Height: | Size: 1.2 KiB |
|
After Width: | Height: | Size: 1.0 KiB |
|
After Width: | Height: | Size: 1.2 KiB |
|
After Width: | Height: | Size: 2.1 KiB |
|
After Width: | Height: | Size: 1.3 KiB |
|
After Width: | Height: | Size: 325 B |
|
After Width: | Height: | Size: 1005 B |
|
After Width: | Height: | Size: 1005 B |
|
After Width: | Height: | Size: 1.3 KiB |
|
After Width: | Height: | Size: 1.7 KiB |
|
After Width: | Height: | Size: 1.7 KiB |
|
After Width: | Height: | Size: 1.2 KiB |
|
After Width: | Height: | Size: 16 KiB |
|
After Width: | Height: | Size: 11 KiB |
|
After Width: | Height: | Size: 15 KiB |
|
After Width: | Height: | Size: 17 KiB |
|
After Width: | Height: | Size: 11 KiB |
|
After Width: | Height: | Size: 4.8 KiB |
|
After Width: | Height: | Size: 20 KiB |
|
After Width: | Height: | Size: 315 B |
|
After Width: | Height: | Size: 4.8 KiB |
|
After Width: | Height: | Size: 7.4 KiB |
|
After Width: | Height: | Size: 1008 B |
|
After Width: | Height: | Size: 1.1 KiB |
|
After Width: | Height: | Size: 4.8 KiB |
|
After Width: | Height: | Size: 796 B |
|
After Width: | Height: | Size: 15 KiB |
|
After Width: | Height: | Size: 4.8 KiB |
|
After Width: | Height: | Size: 1.8 KiB |
|
After Width: | Height: | Size: 7.4 KiB |
|
After Width: | Height: | Size: 20 KiB |
|
After Width: | Height: | Size: 4.8 KiB |
|
After Width: | Height: | Size: 1.1 KiB |
|
After Width: | Height: | Size: 4.8 KiB |
|
After Width: | Height: | Size: 1.1 KiB |
|
After Width: | Height: | Size: 4.8 KiB |
|
After Width: | Height: | Size: 9.9 KiB |
|
After Width: | Height: | Size: 4.4 KiB |
|
After Width: | Height: | Size: 4.6 KiB |
|
After Width: | Height: | Size: 4.5 KiB |
|
After Width: | Height: | Size: 5.0 KiB |
|
After Width: | Height: | Size: 4.8 KiB |
|
After Width: | Height: | Size: 5.0 KiB |
|
After Width: | Height: | Size: 4.9 KiB |
|
After Width: | Height: | Size: 2.9 KiB |
|
After Width: | Height: | Size: 6.3 KiB |
|
After Width: | Height: | Size: 1.6 KiB |
|
After Width: | Height: | Size: 32 KiB |
|
After Width: | Height: | Size: 4.9 KiB |
|
After Width: | Height: | Size: 4.9 KiB |
|
After Width: | Height: | Size: 3.0 KiB |
|
After Width: | Height: | Size: 6.2 KiB |
|
After Width: | Height: | Size: 1.5 KiB |
|
After Width: | Height: | Size: 32 KiB |
|
After Width: | Height: | Size: 32 KiB |
|
After Width: | Height: | Size: 4.8 KiB |
|
After Width: | Height: | Size: 4.8 KiB |
|
After Width: | Height: | Size: 1001 B |
|
After Width: | Height: | Size: 936 B |
|
After Width: | Height: | Size: 4.0 KiB |
|
After Width: | Height: | Size: 1.3 KiB |
|
After Width: | Height: | Size: 316 B |
|
After Width: | Height: | Size: 7.3 KiB |
|
After Width: | Height: | Size: 1001 B |
|
After Width: | Height: | Size: 1.6 KiB |
|
After Width: | Height: | Size: 2.3 KiB |
|
After Width: | Height: | Size: 1.4 KiB |
|
After Width: | Height: | Size: 346 B |
|
After Width: | Height: | Size: 9.6 KiB |