Image

The Image constraint works exactly like the File constraint, except that its mimeTypes and mimeTypesMessage options are automatically setup to work for image files specifically.

イメージ制約は、ファイル制約とまったく同じように機能しますが、その mimeTypes および mimeTypesMessage オプションが、特に画像ファイルに対して機能するように自動的に設定される点が異なります。

Additionally it has options so you can validate against the width and height of the image.

さらに、画像の幅と高さに対して検証できるオプションがあります。

See the File constraint for the bulk of the documentation on this constraint.

この制約に関するドキュメントの大部分については、ファイル制約を参照してください。
Applies to property or method
Class Image
Validator ImageValidator

Basic Usage

This constraint is most commonly used on a property that will be rendered in a form as a FileType field. For example, suppose you're creating an author form where you can upload a "headshot" image for the author. In your form, the headshot property would be a file type. The Author class might look as follows:

この制約は、フォームで FileType フィールドとしてレンダリングされるプロパティで最も一般的に使用されます。たとえば、作成者の「顔写真」画像をアップロードできる作成者フォームを作成しているとします。フォームでは、headshot プロパティはファイル タイプになります。 Author クラスは次のようになります。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
// src/Entity/Author.php
namespace App\Entity;

use Symfony\Component\HttpFoundation\File\File;

class Author
{
    protected $headshot;

    public function setHeadshot(File $file = null)
    {
        $this->headshot = $file;
    }

    public function getHeadshot()
    {
        return $this->headshot;
    }
}

To guarantee that the headshot File object is a valid image and that it is between a certain size, add the following:

ヘッドショットのファイル オブジェクトが有効な画像であり、特定のサイズの範囲内であることを保証するには、次を追加します。
  • Attributes
    属性
  • YAML
    YAML
  • XML
    XML
  • PHP
    PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
// src/Entity/Author.php
namespace App\Entity;

use Symfony\Component\Validator\Constraints as Assert;

class Author
{
    #[Assert\Image(
        minWidth: 200,
        maxWidth: 400,
        minHeight: 200,
        maxHeight: 400,
    )]
    protected $headshot;
}

The headshot property is validated to guarantee that it is a real image and that it is between a certain width and height.

headshot プロパティは、それが実際の画像であること、および特定の幅と高さの間にあることを保証するために検証されます。

You may also want to guarantee the headshot image to be square. In this case you can disable portrait and landscape orientations as shown in the following code:

ヘッドショットの画像が正方形であることを保証することもできます。この場合、次のコードに示すように、縦向きと横向きを無効にすることができます。
  • Attributes
    属性
  • YAML
    YAML
  • XML
    XML
  • PHP
    PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
// src/Entity/Author.php
namespace App\Entity;

use Symfony\Component\Validator\Constraints as Assert;

class Author
{
    #[Assert\Image(
        allowLandscape: false,
        allowPortrait: false,
    )]
    protected $headshot;
}

You can mix all the constraint options to create powerful validation rules.

すべての制約オプションを組み合わせて、強力な検証ルールを作成できます。

Options

This constraint shares all of its options with the File constraint. It does, however, modify two of the default option values and add several other options.

この制約は、すべてのオプションをファイル制約と共有します。ただし、デフォルトのオプション値のうちの 2 つが変更され、他のいくつかのオプションが追加されます。

allowLandscape

type: Boolean default: true

タイプ: ブール デフォルト: true

If this option is false, the image cannot be landscape oriented.

このオプションが false の場合、画像を横向きにすることはできません。

allowLandscapeMessage

type: string default: The image is landscape oriented ({{ width }}x{{ height }}px). Landscape oriented images are not allowed

タイプ: 文字列 デフォルト: 画像は横向き ({{ 幅 }}x{{ 高さ }}px) です。横向きの画像は許可されていません

The error message if the image is landscape oriented and you set allowLandscape to false.

画像が横向きで、allowLandscape を false に設定した場合のエラー メッセージ。

You can use the following parameters in this message:

このメッセージでは、次のパラメーターを使用できます。
Parameter Description
{{ height }} The current height
{{ width }} The current width

allowPortrait

type: Boolean default: true

タイプ: ブール デフォルト: true

If this option is false, the image cannot be portrait oriented.

このオプションが false の場合、画像を縦向きにすることはできません。

allowPortraitMessage

type: string default: The image is portrait oriented ({{ width }}x{{ height }}px). Portrait oriented images are not allowed

タイプ: 文字列 デフォルト: 画像は縦向き ({{ width }}x{{ height }}px) です。縦向きの画像は許可されていません

The error message if the image is portrait oriented and you set allowPortrait to false.

画像が縦向きで、allowPortrait を false に設定した場合のエラー メッセージ。

You can use the following parameters in this message:

このメッセージでは、次のパラメーターを使用できます。
Parameter Description
{{ height }} The current height
{{ width }} The current width

allowSquare

type: Boolean default: true

タイプ: ブール デフォルト: true

If this option is false, the image cannot be a square. If you want to force a square image, then leave this option as its default true value and set allowLandscape and allowPortrait both to false.

このオプションが false の場合、画像を正方形にすることはできません。正方形の画像を強制する場合は、このオプションをデフォルトの true 値のままにして、allowLandscape と allowPortrait の両方を false に設定します。

allowSquareMessage

type: string default: The image is square ({{ width }}x{{ height }}px). Square images are not allowed

タイプ: 文字列 デフォルト: 画像は正方形 ({{ 幅 }}x{{ 高さ }}px) です。正方形の画像は使用できません

The error message if the image is square and you set allowSquare to false.

画像が正方形で、allowSquare を false に設定した場合のエラー メッセージ。

You can use the following parameters in this message:

このメッセージでは、次のパラメーターを使用できます。
Parameter Description
{{ height }} The current height
{{ width }} The current width

corruptedMessage

type: string default: The image file is corrupted.

タイプ: 文字列 デフォルト: 画像ファイルが破損しています。

The error message when the detectCorrupted option is enabled and the image is corrupted.

detectCorrupted オプションが有効で、イメージが破損している場合のエラー メッセージ。

This message has no parameters.

このメッセージにはパラメーターがありません。

detectCorrupted

type: boolean default: false

タイプ: ブール デフォルト: false

If this option is true, the image contents are validated to ensure that the image is not corrupted. This validation is done with PHP's imagecreatefromstring function, which requires the PHP GD extension to be enabled.

このオプションが true の場合、イメージの内容が検証され、イメージが破損していないことが確認されます。この検証は、PHP GD 拡張機能を有効にする必要がある PHP の imagecreatefromstring 関数で行われます。

groups

type: array | string

タイプ: 配列 |ストリング

It defines the validation group or groups of this constraint. Read more about validation groups.

この制約の検証グループを定義します。検証グループの詳細を参照してください。

maxHeight

type: integer

タイプ: 整数

If set, the height of the image file must be less than or equal to this value in pixels.

設定する場合、画像ファイルの高さは、このピクセル単位の値以下である必要があります。

maxHeightMessage

type: string default: The image height is too big ({{ height }}px). Allowed maximum height is {{ max_height }}px.

タイプ: 文字列 デフォルト: 画像の高さが大きすぎます ({{ 高​​さ }} ピクセル)。許容される最大高さは {{ max_height }} ピクセルです。

The error message if the height of the image exceeds maxHeight.

画像の高さが maxHeight を超えた場合のエラー メッセージ。

You can use the following parameters in this message:

このメッセージでは、次のパラメーターを使用できます。
Parameter Description
{{ height }} The current (invalid) height
{{ max_height }} The maximum allowed height

maxPixels

type: integer

タイプ: 整数

If set, the amount of pixels of the image file must be less than or equal to this value.

設定した場合、画像ファイルのピクセル数はこの値以下でなければなりません。

maxPixelsMessage

type: string default: The image has too many pixels ({{ pixels }} pixels). Maximum amount expected is {{ max_pixels }} pixels.

タイプ: 文字列 デフォルト: 画像のピクセル数が多すぎます ({{ ピクセル }} ピクセル)。予想される最大量は {{ max_pixels }} ピクセルです。

The error message if the amount of pixels of the image exceeds maxPixels.

画像のピクセル数が maxPixels を超えた場合のエラー メッセージ。

You can use the following parameters in this message:

このメッセージでは、次のパラメーターを使用できます。
Parameter Description
{{ height }} The current image height
{{ max_pixels }} The maximum allowed amount of pixels
{{ pixels }} The current amount of pixels
{{ width }} The current image width

maxRatio

type: float

タイプ: フロート

If set, the aspect ratio (width / height) of the image file must be less than or equal to this value.

設定する場合、画像ファイルの縦横比 (幅/高さ) はこの値以下でなければなりません。

maxRatioMessage

type: string default: The image ratio is too big ({{ ratio }}). Allowed maximum ratio is {{ max_ratio }}

タイプ: 文字列 デフォルト: 画像の比率が大きすぎます ({{ ratio }})。許容される最大比率は {{ max_ratio }} です

The error message if the aspect ratio of the image exceeds maxRatio.

画像の縦横比が maxRatio を超えた場合のエラー メッセージ。

You can use the following parameters in this message:

このメッセージでは、次のパラメーターを使用できます。
Parameter Description
{{ max_ratio }} The maximum required ratio
{{ ratio }} The current (invalid) ratio

maxWidth

type: integer

タイプ: 整数

If set, the width of the image file must be less than or equal to this value in pixels.

設定されている場合、画像ファイルの幅は、このピクセル単位の値以下である必要があります。

maxWidthMessage

type: string default: The image width is too big ({{ width }}px). Allowed maximum width is {{ max_width }}px.

タイプ: 文字列 デフォルト: 画像の幅が大きすぎます ({{ width }}px)。許容される最大幅は {{ max_width }}px です。

The error message if the width of the image exceeds maxWidth.

画像の幅が maxWidth を超えた場合のエラー メッセージ。

You can use the following parameters in this message:

このメッセージでは、次のパラメーターを使用できます。
Parameter Description
{{ max_width }} The maximum allowed width
{{ width }} The current (invalid) width

mimeTypes

type: array or string default: image/*

タイプ: 配列または文字列 デフォルト: image/*

You can find a list of existing image mime types on the IANA website.

IANA Web サイトで、既存のイメージ MIME タイプのリストを見つけることができます。

mimeTypesMessage

type: string default: This file is not a valid image.

タイプ: 文字列 デフォルト: このファイルは有効なイメージではありません。

If all the values of the mimeTypes option are a subset of image/*, the error message will be instead: The mime type of the file is invalid ({{ type }}). Allowed mime types are {{ types }}.

mimeTypes オプションのすべての値が image/* のサブセットである場合、代わりに次のようなエラー メッセージが表示されます: ファイルの MIME タイプが無効です ({{ タイプ }})。許可されている MIME タイプは {{ タイプ }} です。

You can use the following parameters in this message:

このメッセージでは、次のパラメーターを使用できます。
Parameter Description
{{ file }} Absolute file path
{{ name }} Base file name
{{ type }} The MIME type of the given file
{{ types }} The list of allowed MIME types

minHeight

type: integer

タイプ: 整数

If set, the height of the image file must be greater than or equal to this value in pixels.

設定する場合、画像ファイルの高さは、このピクセル単位の値以上である必要があります。

minHeightMessage

type: string default: The image height is too small ({{ height }}px). Minimum height expected is {{ min_height }}px.

タイプ: 文字列 デフォルト: 画像の高さが小さすぎます ({{ 高​​さ }} ピクセル)。期待される最小の高さは {{ min_height }} ピクセルです。

The error message if the height of the image is less than minHeight.

画像の高さが minHeight 未満の場合のエラー メッセージ。

You can use the following parameters in this message:

このメッセージでは、次のパラメーターを使用できます。
Parameter Description
{{ height }} The current (invalid) height
{{ min_height }} The minimum required height

minPixels

type: integer

タイプ: 整数

If set, the amount of pixels of the image file must be greater than or equal to this value.

設定する場合、画像ファイルのピクセル数はこの値以上である必要があります。

minPixelsMessage

type: string default: The image has too few pixels ({{ pixels }} pixels). Minimum amount expected is {{ min_pixels }} pixels.

タイプ: 文字列 デフォルト: 画像のピクセル数が少なすぎます ({{ ピクセル }} ピクセル)。予想される最小量は {{ min_pixels }} ピクセルです。

The error message if the amount of pixels of the image is less than minPixels.

画像のピクセル数が minPixels 未満の場合のエラー メッセージ。

You can use the following parameters in this message:

このメッセージでは、次のパラメーターを使用できます。
Parameter Description
{{ height }} The current image height
{{ min_pixels }} The minimum required amount of pixels
{{ pixels }} The current amount of pixels
{{ width }} The current image width

minRatio

type: float

タイプ: フロート

If set, the aspect ratio (width / height) of the image file must be greater than or equal to this value.

設定する場合、画像ファイルの縦横比 (幅/高さ) はこの値以上である必要があります。

minRatioMessage

type: string default: The image ratio is too small ({{ ratio }}). Minimum ratio expected is {{ min_ratio }}

タイプ: 文字列 デフォルト: 画像の比率が小さすぎます ({{ ratio }})。予想される最小比率は {{ min_ratio }} です

The error message if the aspect ratio of the image is less than minRatio.

画像の縦横比が minRatio 未満の場合のエラー メッセージ。

You can use the following parameters in this message:

このメッセージでは、次のパラメーターを使用できます。
Parameter Description
{{ min_ratio }} The minimum required ratio
{{ ratio }} The current (invalid) ratio

minWidth

type: integer

タイプ: 整数

If set, the width of the image file must be greater than or equal to this value in pixels.

設定する場合、画像ファイルの幅は、このピクセル単位の値以上である必要があります。

minWidthMessage

type: string default: The image width is too small ({{ width }}px). Minimum width expected is {{ min_width }}px.

タイプ: 文字列 デフォルト: 画像の幅が小さすぎます ({{ width }}px)。期待される最小幅は {{ min_width }}px です。

The error message if the width of the image is less than minWidth.

画像の幅が minWidth より小さい場合のエラー メッセージ。

You can use the following parameters in this message:

このメッセージでは、次のパラメーターを使用できます。
Parameter Description
{{ min_width }} The minimum required width
{{ width }} The current (invalid) width

sizeNotDetectedMessage

type: string default: The size of the image could not be detected.

型: 文字列 デフォルト: 画像のサイズを検出できませんでした。

If the system is unable to determine the size of the image, this error will be displayed. This will only occur when at least one of the size constraint options has been set.

システムが画像のサイズを判別できない場合、このエラーが表示されます。これは、少なくとも 1 つのサイズ制約オプションが設定されている場合にのみ発生します。

This message has no parameters.

このメッセージにはパラメーターがありません。