19 \Magento\Framework\Image\Adapter\AdapterInterface::ADAPTER_GD2,
20 \Magento\Framework\Image\Adapter\AdapterInterface::ADAPTER_IM,
32 foreach ($this->_adapters as $adapterType) {
34 $row[] = $adapterType;
62 $eps = max($colorAfter) > 255 ? 3500 : 20;
65 foreach ($colorAfter as
$i => $v) {
66 if (abs($colorBefore[
$i] - $v) > $eps) {
82 $dir = dirname(
__DIR__) .
'/_files/';
102 $supportedTypes =
$adapter->getSupportedFormats();
103 return $image && file_exists(
$image) && in_array(strtolower(
$data[
'extension']), $supportedTypes);
119 }
catch (\Exception $e) {
120 $this->markTestSkipped($e->getMessage());
138 [\Magento\Framework\Image\Adapter\AdapterInterface::ADAPTER_GD2],
139 [\Magento\Framework\Image\Adapter\AdapterInterface::ADAPTER_IM]
155 }
catch (\Exception $e) {
181 $this->assertNotEmpty(
$adapter->getImage());
200 }
catch (\Exception $e) {
219 call_user_func_array([
$adapter,
'save'], $tempPath);
220 $tempPath = join(
'', $tempPath);
221 $this->assertFileExists($tempPath);
223 }
catch (\Exception $e) {
233 [$this->
_getFixture(
'image_adapters_test.png'), [$dir . uniqid(
'test_image_adapter')]],
234 [$this->
_getFixture(
'image_adapters_test.png'), [$dir, uniqid(
'test_image_adapter')]],
252 $adapter->resize($dims[0], $dims[1]);
253 $this->assertEquals($dims, [
$adapter->getOriginalWidth(),
$adapter->getOriginalHeight()]);
254 }
catch (\Exception $e) {
255 $result = $dims[0] !==
null && $dims[0] <= 0 ||
256 $dims[1] !==
null && $dims[1] <= 0 ||
257 empty(${$dims[0]}) && empty(${$dims[1]});
266 [$this->
_getFixture(
'image_adapters_test.png'), [150, 70]],
267 [$this->
_getFixture(
'image_adapters_test.png'), [
null, 70]],
268 [$this->
_getFixture(
'image_adapters_test.png'), [100,
null]],
269 [$this->
_getFixture(
'image_adapters_test.png'), [
null,
null]],
270 [$this->
_getFixture(
'image_adapters_test.png'), [-100, -50]],
291 $colorBefore =
$adapter->getColorAt($pixel[
'x'], $pixel[
'y']);
300 $colorAfter =
$adapter->getColorAt($newPixel[
'x'], $newPixel[
'y']);
303 $this->assertTrue(
$result, join(
',', $colorBefore) .
' not equals ' . join(
',', $colorAfter));
317 $angle = $angle * pi() / 180;
318 $center = [
'x' => $oldSize[0] / 2,
'y' => $oldSize[1] / 2];
320 $pixel[
'x'] -= $center[
'x'];
321 $pixel[
'y'] -= $center[
'y'];
323 'x' => round($size[0] / 2 + $pixel[
'x'] * cos($angle) + $pixel[
'y'] * sin($angle), 0),
324 'y' => round($size[1] / 2 + $pixel[
'y'] * cos($angle) - $pixel[
'x'] * sin($angle), 0),
332 [$this->
_getFixture(
'image_adapters_test.png'), 45, [
'x' => 157,
'y' => 35]],
333 [$this->
_getFixture(
'image_adapters_test.png'), 48, [
'x' => 157,
'y' => 35]],
334 [$this->
_getFixture(
'image_adapters_test.png'), 90, [
'x' => 250,
'y' => 74]],
335 [$this->
_getFixture(
'image_adapters_test.png'), 180, [
'x' => 250,
'y' => 74]],
363 $imageAdapter->open(
$image);
365 $watermarkAdapter = $this->
_getAdapter($adapterType);
366 $watermarkAdapter->open($watermark);
368 list($comparePoint1X, $comparePoint1Y) = $comparePoint1;
369 list($comparePoint2X, $comparePoint2Y) = $comparePoint2;
372 ->setWatermarkImageOpacity($alphaPercentage)
374 ->watermark($watermark);
376 $comparePoint1Color = $imageAdapter->getColorAt($comparePoint1X, $comparePoint1Y);
377 unset($comparePoint1Color[
'alpha']);
379 $comparePoint2Color = $imageAdapter->getColorAt($comparePoint2X, $comparePoint2Y);
380 unset($comparePoint2Color[
'alpha']);
384 '%s should be different to %s due to alpha transparency',
385 join(
',', $comparePoint1Color),
386 join(
',', $comparePoint2Color)
397 $this->
_getFixture(
'watermark_alpha_base_image.jpg'),
405 $this->
_getFixture(
'watermark_alpha_base_image.jpg'),
413 $this->
_getFixture(
'watermark_alpha_base_image.jpg'),
421 $this->
_getFixture(
'watermark_alpha_base_image.jpg'),
462 $colorBefore =
$adapter->getColorAt($pixel[
'x'], $pixel[
'y']);
465 )->setWatermarkHeight(
467 )->setWatermarkImageOpacity(
469 )->setWatermarkPosition(
474 $colorAfter =
$adapter->getColorAt($pixel[
'x'], $pixel[
'y']);
477 $message = join(
',', $colorBefore) .
' not equals ' . join(
',', $colorAfter);
560 case \Magento\Framework\Image\Adapter\AbstractAdapter::POSITION_BOTTOM_RIGHT:
561 $pixel[
'x'] =
$adapter->getOriginalWidth() - 1;
562 $pixel[
'y'] =
$adapter->getOriginalHeight() - 1;
564 case \Magento\Framework\Image\Adapter\AbstractAdapter::POSITION_BOTTOM_LEFT:
566 $pixel[
'y'] =
$adapter->getOriginalHeight() - 1;
568 case \Magento\Framework\Image\Adapter\AbstractAdapter::POSITION_TOP_LEFT:
572 case \Magento\Framework\Image\Adapter\AbstractAdapter::POSITION_TOP_RIGHT:
573 $pixel[
'x'] =
$adapter->getOriginalWidth() - 1;
576 case \Magento\Framework\Image\Adapter\AbstractAdapter::POSITION_CENTER:
577 $pixel[
'x'] =
$adapter->getOriginalWidth() / 2;
578 $pixel[
'y'] =
$adapter->getOriginalHeight() / 2;
580 case \Magento\Framework\Image\Adapter\AbstractAdapter::POSITION_STRETCH:
581 case \Magento\Framework\Image\Adapter\AbstractAdapter::POSITION_TILE:
582 $pixel[
'x'] = round(
$adapter->getOriginalWidth() / 3);
583 $pixel[
'y'] = round(
$adapter->getOriginalHeight() / 3);
606 $adapter->getOriginalWidth() - $left - $right,
607 $adapter->getOriginalHeight() - $top - $bottom,
610 $adapter->crop($top, $left, $right, $bottom);
614 $this->assertEquals($expectedSize, $newSize);
621 [$this->
_getFixture(
'image_adapters_test.png'), 50, 50, 75, 75],
622 [$this->
_getFixture(
'image_adapters_test.png'), 20, 50, 35, 35],
623 [$this->
_getFixture(
'image_adapters_test.png'), 0, 0, 0, 0],
637 public function testCreatePngFromString($pixel1, $expectedColor1, $pixel2, $expectedColor2, $adapterType)
645 $reader = $readFactory->create(
BP);
646 $path = $reader->getAbsolutePath(
'lib/internal/LinLibertineFont/LinLibertine_Re-4.4.1.ttf');
650 $color1 =
$adapter->getColorAt($pixel1[
'x'], $pixel1[
'y']);
651 unset($color1[
'alpha']);
652 $this->assertEquals($expectedColor1, $color1);
654 $color2 =
$adapter->getColorAt($pixel2[
'x'], $pixel2[
'y']);
655 unset($color2[
'alpha']);
656 $this->assertEquals($expectedColor2, $color2);
668 [
'x' => 5,
'y' => 8],
669 'expectedColor1' => [
'red' => 0,
'green' => 0,
'blue' => 0],
670 [
'x' => 0,
'y' => 14],
671 'expectedColor2' => [
'red' => 255,
'green' => 255,
'blue' => 255],
672 \Magento\Framework\Image\Adapter\AdapterInterface::ADAPTER_GD2,
675 [
'x' => 5,
'y' => 12],
676 'expectedColor1' => [
'red' => 0,
'green' => 0,
'blue' => 0],
677 [
'x' => 0,
'y' => 20],
678 'expectedColor2' => [
'red' => 255,
'green' => 255,
'blue' => 255],
679 \Magento\Framework\Image\Adapter\AdapterInterface::ADAPTER_IM
682 [
'x' => 1,
'y' => 14],
683 'expectedColor1' => [
'red' => 255,
'green' => 255,
'blue' => 255],
684 [
'x' => 5,
'y' => 12],
685 'expectedColor2' => [
'red' => 0,
'green' => 0,
'blue' => 0],
686 \Magento\Framework\Image\Adapter\AdapterInterface::ADAPTER_GD2
689 [
'x' => 1,
'y' => 20],
690 'expectedColor1' => [
'red' => 255,
'green' => 255,
'blue' => 255],
691 [
'x' => 5,
'y' => 16],
692 'expectedColor2' => [
'red' => 0,
'green' => 0,
'blue' => 0],
693 \Magento\Framework\Image\Adapter\AdapterInterface::ADAPTER_IM
702 $this->assertTrue($imageAdapter->validateUploadFile($this->_getFixture(
'magento_thumbnail.jpg')));
712 $imageAdapter->validateUploadFile(
__FILE__);
_getAdapter($adapterType)
_prepareColor($pixel, $position, $adapter)
testImageSize($image, $adapterType)
testResize($image, $dims, $adapterType)
testGetImage($adapterType)
testCrop($image, $left, $top, $right, $bottom, $adapterType)
defined('TESTS_BP')||define('TESTS_BP' __DIR__
testSave($image, $tempPath, $adapterType)
imageWatermarkPositionDataProvider()
defined('MTF_BOOT_FILE')||define('MTF_BOOT_FILE' __FILE__
testWatermarkPosition( $image, $watermark, $width, $height, $opacity, $position, $colorX, $colorY, $adapterType)
const POSITION_BOTTOM_RIGHT
testOpen($image, $adapterType)
testRotate($image, $angle, $pixel, $adapterType)
createPngFromStringDataProvider()
testValidateUploadFileException()
imageWatermarkWithAlphaTransparencyDataProvider()
_isFormatSupported($image, $adapter)
_compareColors($colorBefore, $colorAfter)
testWatermarkWithAlphaTransparency( $image, $watermark, $alphaPercentage, $comparePoint1, $comparePoint2, $adapterType)
_convertCoordinates($pixel, $angle, $oldSize, $size)
testCheckDependencies($adapterType)
static getObjectManager()