Example #1
0
	public function testImageResizing(){
		// Start with this 1024x768 image.
		$file = new \Core\Filestore\Backends\FileLocal('core/tests/ivak_TV_Test_Screen.png');

		// Basic resize will scale large images down but will not scale small images up.
		$test = $file->getPreviewFile('32x32');
		$this->assertTrue($test->isImage());
		$dimensions = getimagesize($test->getFilename());
		$this->assertEquals(32, $dimensions[0]);
		$this->assertEquals(24, $dimensions[1]);

		// Basic resize will scale down images if one of the dimensions is greater than the requested.
		$test = $file->getPreviewFile('800x800');
		$this->assertTrue($test->isImage());
		$dimensions = getimagesize($test->getFilename());
		$this->assertEquals(800, $dimensions[0]);
		$this->assertEquals(600, $dimensions[1]);

		// Basic resize will NOT scale up an image.
		$test = $file->getPreviewFile('2048x2048');
		$this->assertTrue($test->isImage());
		$dimensions = getimagesize($test->getFilename());
		$this->assertEquals(1024, $dimensions[0]);
		$this->assertEquals(768, $dimensions[1]);

		// Force-Constraint forces the constraint regardless of original image source.
		$test = $file->getPreviewFile('32x32!');
		$this->assertTrue($test->isImage());
		$dimensions = getimagesize($test->getFilename());
		$this->assertEquals(32, $dimensions[0]);
		$this->assertEquals(32, $dimensions[1]);

		// Force-Constraint forces the constraint regardless of original image source.
		$test = $file->getPreviewFile('1040x1040!');
		$this->assertTrue($test->isImage());
		$dimensions = getimagesize($test->getFilename());
		$this->assertEquals(1040, $dimensions[0]);
		$this->assertEquals(1040, $dimensions[1]);

		// Fill area will scale up to match the smallest dimension.
		$test = $file->getPreviewFile('800x800^');
		$this->assertTrue($test->isImage());
		$dimensions = getimagesize($test->getFilename());
		$this->assertEquals(1067, $dimensions[0]);
		$this->assertEquals(800, $dimensions[1]);

		// Fill area will scale up to match the smallest dimension.
		$test = $file->getPreviewFile('1200x1200^');
		$this->assertTrue($test->isImage());
		$dimensions = getimagesize($test->getFilename());
		$this->assertEquals(1600, $dimensions[0]);
		$this->assertEquals(1200, $dimensions[1]);

		// Fill area will scale up to match the smallest dimension.
		$test = $file->getPreviewFile('32x32^');
		$this->assertTrue($test->isImage());
		$dimensions = getimagesize($test->getFilename());
		$this->assertEquals(42, $dimensions[0]);
		$this->assertEquals(32, $dimensions[1]);
	}