画像マニピュレータ link

画像マニピュレータは、画像や画像マニピュレータを取る displayable で、それらを読み込み、または処理します。画像マニピュレータは画像または他の画像マニピュレータのみを入力として受け取れます。

画像マニピュレータは displayable が使える所ならどこででも使えますが、その逆はできません。 Image() は画像マニピュレータの一種なので、Image は画像マニピュレータが要求されたときはいつでも使えます。

以下に示すいくつかの例外を除いて、画像マニピュレータの使用はレガシーなものです。かつてドキュメントに記されていた多くの画像マニピュレータは本質的に問題があるため、すでに使用されていません。 im.Data を除いて多くの場合で Transform() displayable はそれらの問題を解決しつつ同様な機能をより一般的な方法で提供しますが、 gl2 を有効化する必要がある場合もあります。

im.AlphaMask(base, mask, **properties) link

basemask 2 つの画像マニピュレータを引数として取る画像マニピュレータです。 base のアルファチャンネルを mask の赤いチャンネルで置き換えます。

これは一枚目の jpeg を色データに二枚目をアルファデータにといった具合に、二枚目の画像のアルファチャンネルを適用するのに使います。2 枚の jpeg の方が 1 枚の png ファイルよりも容量が小さいことがあります。

mask のアルファチャンネルを使用する AlphaMask() とは別の引数をとることに注意してください。

im.Blur(im, xrad, yrad=None, **properties) link

xrad とオプションの yrad で記述される elliptical kernel を使用して画像マニピュレータ im にブラーをかける画像マニピュレータです。

yrad が None なら、 xrad の値と同じ値になり、 circular kernel が使用されます。

image logo blurred = im.Blur("logo.png", 1.5)

現行では同じエフェクトが blur transform プロパティーで得られます。

im.Crop(im, rect) link

画像マニピュレータ im から (x, y, width, height) タプル rect を刈りこむ画像マニピュレータです。

image logo crop = im.Crop("logo.png", (0, 0, 100, 307))

現行では同じエフェクトが crop transform プロパティーで得られます。

im.Data(data, filename, **properties) link

この画像マニピュレータは、バイナリデータから画像をロードします。

data

バイナリの文字列です。標準フォーマットでの圧縮画像データを指定します。

filename

画像に関連付けられる "filename" です。これによって Ren'Py にその data のフォーマットに関するヒントを与えるます(実際にディスクからロードはされません)。

im.FactorScale(im, width, height=None, bilinear=True, **properties) link

別の画像マニピュレータ im の大きさを調整し、幅を width 倍、高さを height 倍にする画像マニピュレータです。 height を省略すると、デフォルトで width になります。

bilinear が True なら、大きさの調整に双線形補間が使われます。そうでなければ、近隣補間が使われます。

image logo doubled = im.FactorScale("logo.png", 1.5)

同じ効果が zoom や the xzoom, yzoom transform プロパティーで達成できます。

im.Flip(im, horizontal=False, vertical=False, **properties) link

im (画像マニピュレータ) を水平または垂直に裏返す画像マニピュレータです。 vertical および horizontal で画像が裏返される方向を制御します。

image eileen flip = im.Flip("eileen_happy.png", vertical=True)

同じ効果が :tpref:`xzoom`(水平方向) や the :tpref:`yzoom`(垂直方向) を負の値にして達成できます。

im.Grayscale(im, **properties) link

画像マニピュレータ im の彩度をなくした版を作成する画像マニピュレータです。

同じ効果が :tpref:`matrixcolor`に SaturationMatrix()0 を与えて達成できます。

im.Sepia(im, **properties) link

画像マニピュレータ im のセピアトーン版を作成する画像マニピュレータです。

同じ効果が :tpref:`matrixcolor`に SepiaMatrix() を与えて達成できます。

im.Tile(im, size=None, **properties) link

画像マニピュレータ imsize になるまでタイル張りする画像マニピュレータです。

size

None を指定するか、(width, height) タプルでを指定します。None であれば、デフォルトで (config.screen_width, config.screen_height) になります。

同じ効果が Tile(im, size=size) で達成できます。

im.MatrixColor link

im.MatrixColor 画像マニピュレータは、画像の色の変換を行列で指定する画像マニピュレータです。使われる行列は im.matrix オブジェクトです。im.matrix オブジェクトは 5x5 行列をオブジェクトにエンコードし、行列操作をサポートし、一連の関数によって返されます。im.matrix オブジェクトを掛け合わせて、両方の演算を行う一つのオブジェクトを得られます。例えば、このコードは

image city blue = im.MatrixColor(
    "city.jpg",
    im.matrix.desaturate() * im.matrix.tint(0.9, 0.9, 1.0))

まず画像の彩度をなくし、それから青く染めます。中間の画像が必要ないときは、im.MatrixColors を二度使うよりも行列を掛け合わせましょう。そのほうが時間上も画像キャッシュ領域上も遥かに効率的です。

im.MatrixColor 画像マニピュレータは matrixcolor プロパティーを指定する transform と ATL transform で置き換えられました。各 im.matrix ジェネレーターには matrixcolor に記述されている新しい等価な Matrix が与えられました。

警告

新しい Matrix オブジェクトは im.Matrixcolor とは逆の順序で乗算されます。 X が im.Matrixcolor.x に対応する Matrix であるとすると, C*B*Aim.a*im.b*im.c に対応する Matrix となります。

im.MatrixColor(im, matrix, **properties) link

matrix を使って画像マニピュレータ im を線形に変換する画像マニピュレータです。

Matrix は、20 または 25 要素のリスト、タプル、または im.matrix() にしてください。オブジェクトに 25 要素あれば、20 番目よりあとは無視されます。

ソースカラーの 4 つの構成要素が R, G, B, および A でそれぞれの範囲が 0.0 から 1.0、変換された後の色の 4 つの構成要素が R', G', B', および A' で同じ範囲、そして行列の要素が以下のように名付けられるとすると

[ a, b, c, d, e,
  f, g, h, i, j,
  k, l, m, n, o,
  p, q, r, s, t ]

変換先の色は以下の公式で計算されます

R' = (a * R) + (b * G) + (c * B) + (d * A) + e
G' = (f * R) + (g * G) + (h * B) + (i * A) + j
B' = (k * R) + (l * G) + (m * B) + (n * A) + o
A' = (p * R) + (q * G) + (r * B) + (s * A) + t

変換先の色の構成要素は範囲 [0.0, 1.0] に固定されます。

im.matrix() link

matrix から im.matrix オブジェクトを構成します。im.matrix オブジェクトがサポートする演算は、行列乗算、スカラー乗算、要素ごとの加算、要素ごとの減算です。これらの演算は、標準の数学演算子 (それぞれ *, *, +, および -) を使って呼び出されます。二つの im.matrix オブジェクトを乗じると行列乗算が行われ、そうでなければスカラー乗算が使われます。

matrix は 20 または 25 要素のリストまたはタプルです。これが 20 要素なら、乗算をしやすいように (0, 0, 0, 0, 1) が付け足され、5x5 の行列になります。

im.matrix.brightness(b) link

画像の輝度を変える im.matrix を返します。

b

画像の輝度を変化させる量です。これは -1 から 1 でなければならず、-1 は可能な中で最も暗い画像で、1 は最も明るい画像です。

matrixcolor transform プロパティーに対する適切な等価物は BrightnessMatrix(b) です。

im.matrix.colorize(black_color, white_color) link

白黒の画像に着色する im.matrix を返します。 black_color および white_color は Ren'Py スタイルの色で、文字列か (0-255) の明度値のタプルかで指定できます。

# This makes black colors red, and white colors blue.
image logo colored = im.MatrixColor(
    "bwlogo.png",
    im.matrix.colorize("#f00", "#00f"))

matrixcolor transform プロパティーに対する適切な等価物は ColorizeMatrix(black_color, white_color) です。

im.matrix.contrast(c) link

画像のコントラストを変化させる im.matrix を返します。 c は 0.0 より大きく、0.0 から 1.0 の値はコントラストを下げ、1.0 より大きい値はコントラストを上げます。

matrixcolor transform プロパティーに対する適切な等価物は ContrastMatrix(c) です。

im.matrix.desaturate() link

画像の彩度を無くす (グレースケールにする) im.matrix を返します。これは、im.matrix.saturation(0) を呼び出すのと等価です。

matrixcolor transform プロパティーに対する適切な等価物は SaturationMatrix(0) です。

im.matrix.hue(h) link

高度を変えずに色相を h 度循環させる im.matrix を返します。

matrixcolor transform プロパティーに対する適切な等価物は HueMatrix(h) です。

im.matrix.identity() link

色やアルファ値を変えない恒等行列を返します。

matrixcolor transform プロパティーに対する適切な等価物は IdentityMatrix() です。

im.matrix.invert() link

アルファ値を変えずに赤、緑、青のチャンネルを反転させる im.matrix を返します。

matrixcolor transform プロパティーに対する適切な等価物は InvertMatrix(1.0) です。

im.matrix.opacity(o) link

画像の不透明度を変更する im.matrix を返します。 o は 0.0 で完全に透明、1.0 で完全に不透明になります。

matrixcolor transform プロパティーに対する適切な等価物は OpacityMatrix(o) です。

im.matrix.saturation(level, desat=(0.2126, 0.7152, 0.0722)) link

画像の彩度を変える im.matrix を返します。アルファチャンネルはそのままです。

level

変更後の画像の彩度です。1.0 はそのままの画像で、0.0 はグレースケールです。

desat

これは 3 要素のタプルで、赤、緑、青チャンネルが完全に彩度を無くされた 3 つのチャンネルにどれだけ置かれるかを制御します。デフォルトは、NTSC テレビジョンシグナルの輝度チャンネルに使われる定数に基づきます。人間の目は緑に一番敏感なので、緑チャンネルは他の 2 つのチャンネルよりも多く残されます。

matrixcolor transform プロパティーに対する適切な等価物は SaturationMatrix(value, desat) です。

im.matrix.tint(r, g, b) link

画像のアルファチャンネルはそのままで色合いをつける im.matrix を返します。 r,`g`, および b は 0 から 1 の数で、与えられたチャンネルのうちの最終的な画像に置かれる割合を制御します。(例えば、 r が .5 で、赤チャンネルの値が 100 なら、変換された後の色の赤値は 50 になります。)

matrixcolor transform プロパティーに対する適切な等価物は TintMatrix(Color((r, g, b))) です。