ImageOps モジュール

ImageOps モジュールには、「既製」の画像処理操作が多数含まれています。このモジュールはやや実験的であり、ほとんどの演算子はLおよびRGB画像でのみ機能します。

バージョン1.1.3で追加されました。

PIL.ImageOps.autocontrast(image: Image, cutoff: float | tuple[float, float] = 0, ignore: int | Sequence[int] | None = None, mask: Image | None = None, preserve_tone: bool = False) Image[ソース]

画像のコントラストを最大化 (正規化) します。この関数は、入力画像 (またはマスク領域) のヒストグラムを計算し、ヒストグラムから最も明るいピクセルと最も暗いピクセルのcutoffパーセントを削除し、最も暗いピクセルが黒 (0) に、最も明るいピクセルが白 (255) になるように画像を再マッピングします。

パラメーター:
  • image – 処理する画像。

  • cutoff – ヒストグラムの低い端と高い端から切り捨てるパーセント。 (低い, 高い) のタプル、または両方に単一の数値。

  • ignore – 背景ピクセルの値 (背景なしの場合はNoneを使用)。

  • mask – コントラスト操作で使用されるヒストグラムは、マスク内のピクセルを使用して計算されます。マスクが指定されていない場合、画像全体がヒストグラム計算に使用されます。

  • preserve_tone

    Photoshopのようなスタイルの自動コントラストで画像トーンを保持します。

    バージョン8.2.0で追加されました。

戻り値:

画像。

PIL.ImageOps.colorize(image: Image, black: str | tuple[int, ...], white: str | tuple[int, ...], mid: str | int | tuple[int, ...] | None = None, blackpoint: int = 0, whitepoint: int = 255, midpoint: int = 127) Image[ソース]

グレースケール画像をカラー化します。この関数は、ソース画像内のすべての黒いピクセルを最初の色に、すべての白いピクセルを2番目の色にマッピングするカラーウェッジを計算します。 mid が指定されている場合、3色マッピングを使用します。 black および white 引数はRGBタプルまたは色名である必要があります。オプションで、mid を指定して3色マッピングを使用できます。色のマッピング位置は(例:blackpoint)、対応する色がマッピングされるべき整数値を指定できます。これらのパラメーターは、blackpoint <= midpoint <= whitepointmid が指定されている場合)のように論理的な順序である必要があります。

パラメーター:
  • image – カラー化する画像。

  • black – 黒の入力ピクセルに使用する色。

  • white – 白の入力ピクセルに使用する色。

  • mid – 中間調の入力ピクセルに使用する色。

  • blackpoint – 黒のマッピングの整数値 [0, 255]。

  • whitepoint – 白のマッピングの整数値 [0, 255]。

  • midpoint – 中間調のマッピングの整数値 [0, 255]。

戻り値:

画像。

PIL.ImageOps.crop(image: Image, border: int = 0) Image[ソース]

画像から境界線を削除します。同じピクセル数が4辺すべてから削除されます。この関数はすべての画像モードで機能します。

参考

crop()

パラメーター:
  • image – クロップする画像。

  • border – 削除するピクセル数。

戻り値:

画像。

PIL.ImageOps.scale(image: Image, factor: float, resample: int = Resampling.BICUBIC) Image[ソース]

パラメーターで指定された特定の係数で、リスケールされた画像を返します。1より大きい係数は画像を拡大し、0から1の間の係数は画像を縮小します。

パラメーター:
  • image – リスケールする画像。

  • factor – 拡大係数(float)。

  • resample – 使用するリサンプリング方法。デフォルトは BICUBIC です。 フィルター を参照してください。

戻り値:

Image オブジェクト。

class PIL.ImageOps.SupportsGetMesh(*args, **kwargs)[ソース]

ベース: Protocol

画像を引数として取り、タプルのリストを返すgetmeshメソッドをサポートするオブジェクト。各タプルには、ソースボックス(4つの整数のタプル)、および最終的な四角形を表す8つの整数のタプル(左上、左下、右下、右上の順)の2つのタプルが含まれます。

PIL.ImageOps.deform(image: Image, deformer: SupportsGetMesh, resample: int = Resampling.BILINEAR) Image[ソース]

画像をゆがめます。

パラメーター:
  • image – ゆがませる画像。

  • deformer – デフォーマーオブジェクト。getmesh メソッドを実装するオブジェクトであれば、どれでも使用できます。

  • resample – オプションのリサンプリングフィルター。PIL.Image.transform 関数で使用可能な値と同じ値が使用できます。

戻り値:

画像。

PIL.ImageOps.equalize(image: Image, mask: Image | None = None) Image[ソース]

画像のヒストグラムを均一化します。この関数は、出力画像でグレースケール値が均一に分布するように、入力画像に非線形マッピングを適用します。

パラメーター:
  • image – 均一化する画像。

  • mask – オプションのマスク。指定された場合、マスクによって選択されたピクセルのみが分析に含まれます。

戻り値:

画像。

PIL.ImageOps.expand(image: Image, border: int | tuple[int, ...] = 0, fill: str | int | tuple[int, ...] = 0) Image[ソース]

画像に枠線を追加します

パラメーター:
  • image – 拡張する画像。

  • border – 枠線の幅(ピクセル単位)。

  • fill – ピクセルの塗りつぶし値(色値)。デフォルトは0(黒)です。

戻り値:

画像。

PIL.ImageOps.flip(image: Image) Image[ソース]

画像を垂直方向(上から下)に反転させます。

パラメーター:

image – 反転する画像。

戻り値:

画像。

PIL.ImageOps.grayscale(image: Image) Image[ソース]

画像をグレースケールに変換します。

パラメーター:

image – 変換する画像。

戻り値:

画像。

PIL.ImageOps.invert(image: Image) Image[ソース]

画像を反転(ネガ)します。

パラメーター:

image – 反転する画像。

戻り値:

画像。

PIL.ImageOps.mirror(image: Image) Image[ソース]

画像を水平方向(左から右)に反転させます。

パラメーター:

image – 反転する画像。

戻り値:

画像。

PIL.ImageOps.posterize(image: Image, bits: int) Image[ソース]

各カラーチャネルのビット数を減らします。

パラメーター:
  • image – ポスタリゼーションする画像。

  • bits – 各チャネルで保持するビット数(1〜8)。

戻り値:

画像。

PIL.ImageOps.solarize(image: Image, threshold: int = 128) Image[ソース]

しきい値を超えるすべてのピクセル値を反転させます。

パラメーター:
  • image – ソラリゼーションする画像。

  • threshold – このグレースケールレベルを超えるすべてのピクセルが反転されます。

戻り値:

画像。

PIL.ImageOps.exif_transpose(image: Image, *, in_place: bool = False) Image | None[ソース]

画像に1以外のEXIF Orientationタグがある場合、それに応じて画像を転置し、向きのデータを削除します。

パラメーター:
  • image – 転置する画像。

  • in_place – ブール値。キーワード専用引数。Trueの場合、元の画像がインプレースで変更され、Noneが返されます。False(デフォルト)の場合、転置が適用された新しいImageオブジェクトが返されます。転置がない場合は、画像のコピーが返されます。

指定されたサイズに対する相対的なサイズ変更

from PIL import Image, ImageOps
size = (100, 150)
with Image.open("Tests/images/hopper.webp") as im:
    ImageOps.contain(im, size).save("imageops_contain.webp")
    ImageOps.cover(im, size).save("imageops_cover.webp")
    ImageOps.fit(im, size).save("imageops_fit.webp")
    ImageOps.pad(im, size, color="#f00").save("imageops_pad.webp")

    # thumbnail() can also be used,
    # but will modify the image object in place
    im.thumbnail(size)
    im.save("image_thumbnail.webp")

thumbnail()

contain()

cover()

fit()

pad()

指定されたサイズ

(100, 150)

(100, 150)

(100, 150)

(100, 150)

(100, 150)

結果の画像

../_images/image_thumbnail.webp ../_images/imageops_contain.webp ../_images/imageops_cover.webp ../_images/imageops_fit.webp ../_images/imageops_pad.webp

結果のサイズ

100×100

100×100

150×150

100×150

100×150

PIL.ImageOps.contain(image: Image, size: tuple[int, int], method: int = Resampling.BICUBIC) Image[source]

元の縦横比を維持したまま、要求されたサイズ内の最大幅と高さに設定された、リサイズされたバージョンの画像を返します。

パラメーター:
  • image – リサイズする画像。

  • size – ピクセル単位で指定された、要求される出力サイズ。(幅、高さ)のタプルで指定します。

  • method – 使用するリサンプリングメソッド。デフォルトはBICUBICです。フィルターを参照してください。

戻り値:

画像。

PIL.ImageOps.cover(image: Image, size: tuple[int, int], method: int = Resampling.BICUBIC) Image[source]

元の縦横比を維持したまま、要求されたサイズをカバーするように、リサイズされたバージョンの画像を返します。

パラメーター:
  • image – リサイズする画像。

  • size – ピクセル単位で指定された、要求される出力サイズ。(幅、高さ)のタプルで指定します。

  • method – 使用するリサンプリングメソッド。デフォルトはBICUBICです。フィルターを参照してください。

戻り値:

画像。

PIL.ImageOps.fit(image: Image, size: tuple[int, int], method: int = Resampling.BICUBIC, bleed: float = 0.0, centering: tuple[float, float] = (0.5, 0.5)) Image[source]

要求された縦横比とサイズにトリミングされた、リサイズおよびトリミングされたバージョンの画像を返します。

この関数はKevin Cazabonによって提供されました。

パラメーター:
  • image – リサイズおよびトリミングする画像。

  • size – ピクセル単位で指定された、要求される出力サイズ。(幅、高さ)のタプルで指定します。

  • method – 使用するリサンプリングメソッド。デフォルトはBICUBICです。フィルターを参照してください。

  • bleed – 画像の外側の4つの端すべてから境界線を削除します。値は10進数のパーセントです(1パーセントの場合は0.01を使用します)。デフォルト値は0(境界線なし)です。0.5以上にはできません。

  • centering – トリミング位置を制御します。中央トリミングには(0.5, 0.5)を使用します(例えば、幅をトリミングする場合は、左側から50%を削除し、したがって右側から50%を削除します)。(0.0, 0.0)は左上隅からトリミングします(つまり、幅をトリミングする場合は、トリミング部分をすべて右側から削除し、高さをトリミングする場合は、すべて下から削除します)。(1.0, 0.0)は左下隅からトリミングします。など(つまり、幅をトリミングする場合は、トリミング部分をすべて左側から削除し、高さをトリミングする場合は、上から何も削除せず、したがってすべてを下から削除します)。

戻り値:

画像。

PIL.ImageOps.pad(image: Image, size: tuple[int, int], method: int = Resampling.BICUBIC, color: str | int | tuple[int, ...] | None = None, centering: tuple[float, float] = (0.5, 0.5)) Image[source]

要求された縦横比とサイズを埋めるように拡張された、リサイズおよびパディングされたバージョンの画像を返します。

パラメーター:
  • image – リサイズおよびトリミングする画像。

  • size – ピクセル単位で指定された、要求される出力サイズ。(幅、高さ)のタプルで指定します。

  • method – 使用するリサンプリングメソッド。デフォルトはBICUBICです。フィルターを参照してください。

  • color – パディングされた画像の背景色。

  • centering

    パディングされたバージョン内の元の画像の配置を制御します。

    (0.5, 0.5)は画像を中央に保ち、(0, 0)は画像を左上に揃え、(1, 1)は画像を右下に揃えます。

戻り値:

画像。