/** * Get orientation of an image from the supplied Image object. * NOTE: This function doesn't read EXIF data of the file to detect orientation * data. * * @param Image $image * * @return ImageOrientation */ protected function getImageOrientation(Image $image) { if (!$image->isHydrated()) { throw new ImageManagerException(ImageManager::ERR_NOT_HYDRATED); } $img = new \Imagick(); $img->readImageBlob($image->getData()); $width = $img->getImageWidth(); $height = $img->getImageHeight(); if ($width >= $height) { return ImageOrientation::LANDSCAPE(); } return ImageOrientation::PORTRAIT(); }
public function testMetadataRetrieval() { $inspector = new ImageInspector(); $fn = __DIR__ . '/../Resources/image.png'; $im = new ImageManager(new Filesystem(new LocalAdapter(static::$tmp_dir . 'remote')), new EphemeralCachePool(), [], true); $image = $im->loadFromFile($fn, self::TEST_KEY); $im->push($image); $metadata = $inspector->getImageMetadata($image); $this->assertEquals($metadata->getFormat(), ImageFormat::PNG()); $this->assertEquals($metadata->getDimensions(), new ImageDimensions(300, 300)); $this->assertEquals($metadata->getResolution(), new ImageDimensions(72, 72)); $this->assertEquals($metadata->getOrientation(), ImageOrientation::LANDSCAPE()); }