Chris@0: Chris@0: * Chris@0: * For the full copyright and license information, please view the LICENSE Chris@0: * file that was distributed with this source code. Chris@0: */ Chris@0: Chris@0: namespace Symfony\Component\Validator\Constraints; Chris@0: Chris@0: /** Chris@0: * @Annotation Chris@0: * @Target({"PROPERTY", "METHOD", "ANNOTATION"}) Chris@0: * Chris@0: * @author Benjamin Dulau Chris@0: * @author Bernhard Schussek Chris@0: */ Chris@0: class Image extends File Chris@0: { Chris@0: const SIZE_NOT_DETECTED_ERROR = '6d55c3f4-e58e-4fe3-91ee-74b492199956'; Chris@0: const TOO_WIDE_ERROR = '7f87163d-878f-47f5-99ba-a8eb723a1ab2'; Chris@0: const TOO_NARROW_ERROR = '9afbd561-4f90-4a27-be62-1780fc43604a'; Chris@0: const TOO_HIGH_ERROR = '7efae81c-4877-47ba-aa65-d01ccb0d4645'; Chris@0: const TOO_LOW_ERROR = 'aef0cb6a-c07f-4894-bc08-1781420d7b4c'; Chris@14: const TOO_FEW_PIXEL_ERROR = '1b06b97d-ae48-474e-978f-038a74854c43'; Chris@14: const TOO_MANY_PIXEL_ERROR = 'ee0804e8-44db-4eac-9775-be91aaf72ce1'; Chris@0: const RATIO_TOO_BIG_ERROR = '70cafca6-168f-41c9-8c8c-4e47a52be643'; Chris@0: const RATIO_TOO_SMALL_ERROR = '59b8c6ef-bcf2-4ceb-afff-4642ed92f12e'; Chris@0: const SQUARE_NOT_ALLOWED_ERROR = '5d41425b-facb-47f7-a55a-de9fbe45cb46'; Chris@0: const LANDSCAPE_NOT_ALLOWED_ERROR = '6f895685-7cf2-4d65-b3da-9029c5581d88'; Chris@0: const PORTRAIT_NOT_ALLOWED_ERROR = '65608156-77da-4c79-a88c-02ef6d18c782'; Chris@0: const CORRUPTED_IMAGE_ERROR = '5d4163f3-648f-4e39-87fd-cc5ea7aad2d1'; Chris@0: Chris@0: // Include the mapping from the base class Chris@0: Chris@17: protected static $errorNames = [ Chris@0: self::NOT_FOUND_ERROR => 'NOT_FOUND_ERROR', Chris@0: self::NOT_READABLE_ERROR => 'NOT_READABLE_ERROR', Chris@0: self::EMPTY_ERROR => 'EMPTY_ERROR', Chris@0: self::TOO_LARGE_ERROR => 'TOO_LARGE_ERROR', Chris@0: self::INVALID_MIME_TYPE_ERROR => 'INVALID_MIME_TYPE_ERROR', Chris@0: self::SIZE_NOT_DETECTED_ERROR => 'SIZE_NOT_DETECTED_ERROR', Chris@0: self::TOO_WIDE_ERROR => 'TOO_WIDE_ERROR', Chris@0: self::TOO_NARROW_ERROR => 'TOO_NARROW_ERROR', Chris@0: self::TOO_HIGH_ERROR => 'TOO_HIGH_ERROR', Chris@0: self::TOO_LOW_ERROR => 'TOO_LOW_ERROR', Chris@14: self::TOO_FEW_PIXEL_ERROR => 'TOO_FEW_PIXEL_ERROR', Chris@14: self::TOO_MANY_PIXEL_ERROR => 'TOO_MANY_PIXEL_ERROR', Chris@0: self::RATIO_TOO_BIG_ERROR => 'RATIO_TOO_BIG_ERROR', Chris@0: self::RATIO_TOO_SMALL_ERROR => 'RATIO_TOO_SMALL_ERROR', Chris@0: self::SQUARE_NOT_ALLOWED_ERROR => 'SQUARE_NOT_ALLOWED_ERROR', Chris@0: self::LANDSCAPE_NOT_ALLOWED_ERROR => 'LANDSCAPE_NOT_ALLOWED_ERROR', Chris@0: self::PORTRAIT_NOT_ALLOWED_ERROR => 'PORTRAIT_NOT_ALLOWED_ERROR', Chris@0: self::CORRUPTED_IMAGE_ERROR => 'CORRUPTED_IMAGE_ERROR', Chris@17: ]; Chris@0: Chris@0: public $mimeTypes = 'image/*'; Chris@0: public $minWidth; Chris@0: public $maxWidth; Chris@0: public $maxHeight; Chris@0: public $minHeight; Chris@0: public $maxRatio; Chris@0: public $minRatio; Chris@14: public $minPixels; Chris@14: public $maxPixels; Chris@0: public $allowSquare = true; Chris@0: public $allowLandscape = true; Chris@0: public $allowPortrait = true; Chris@0: public $detectCorrupted = false; Chris@0: Chris@0: // The constant for a wrong MIME type is taken from the parent class. Chris@0: public $mimeTypesMessage = 'This file is not a valid image.'; Chris@0: public $sizeNotDetectedMessage = 'The size of the image could not be detected.'; Chris@0: public $maxWidthMessage = 'The image width is too big ({{ width }}px). Allowed maximum width is {{ max_width }}px.'; Chris@0: public $minWidthMessage = 'The image width is too small ({{ width }}px). Minimum width expected is {{ min_width }}px.'; Chris@0: public $maxHeightMessage = 'The image height is too big ({{ height }}px). Allowed maximum height is {{ max_height }}px.'; Chris@0: public $minHeightMessage = 'The image height is too small ({{ height }}px). Minimum height expected is {{ min_height }}px.'; Chris@14: public $minPixelsMessage = 'The image has too few pixels ({{ pixels }} pixels). Minimum amount expected is {{ min_pixels }} pixels.'; Chris@14: public $maxPixelsMessage = 'The image has too many pixels ({{ pixels }} pixels). Maximum amount expected is {{ max_pixels }} pixels.'; Chris@0: public $maxRatioMessage = 'The image ratio is too big ({{ ratio }}). Allowed maximum ratio is {{ max_ratio }}.'; Chris@0: public $minRatioMessage = 'The image ratio is too small ({{ ratio }}). Minimum ratio expected is {{ min_ratio }}.'; Chris@0: public $allowSquareMessage = 'The image is square ({{ width }}x{{ height }}px). Square images are not allowed.'; Chris@0: public $allowLandscapeMessage = 'The image is landscape oriented ({{ width }}x{{ height }}px). Landscape oriented images are not allowed.'; Chris@0: public $allowPortraitMessage = 'The image is portrait oriented ({{ width }}x{{ height }}px). Portrait oriented images are not allowed.'; Chris@0: public $corruptedMessage = 'The image file is corrupted.'; Chris@0: }