画像マニピュレータ link
画像マニピュレータは、画像や画像マニピュレータを取る displayable で、それらを読み込み、または処理します。画像マニピュレータは画像または他の画像マニピュレータのみを入力として受け取れます。
画像マニピュレータは displayable が使える所ならどこででも使えますが、その逆はできません。 Image()
は画像マニピュレータの一種なので、Image は画像マニピュレータが要求されたときはいつでも使えます。
警告
以下に示すいくつかの例外を除いて、画像マニピュレータの使用はレガシーなものです。かつてドキュメントに記されていた多くの画像マニピュレータは本質的に問題があるため、すでに使用されていません。 im.Data を除いて多くの場合で Transform()
displayable はそれらの問題を解決しつつ同様な機能をより一般的な方法で提供します。
- class im.AlphaMask(base, mask, **properties) link
base と mask 2 つの画像マニピュレータを引数として取る画像マニピュレータです。 base のアルファチャンネルを mask の赤いチャンネルで置き換えます。
これは一枚目の jpeg を色データに二枚目をアルファデータにといった具合に、二枚目の画像のアルファチャンネルを適用するのに使います。2 枚の jpeg の方が 1 枚の png ファイルよりも容量が小さいことがあります。
mask のアルファチャンネルを使用する
AlphaMask()
とは別の引数をとることに注意してください。2つの画像は同じサイズで、同じオーバーサンプリング係数である必要があり、
- class 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)
バージョン 7.4.0 で非推奨: 同じ効果が
blur
transform プロパティーで達成できます。
- class im.Crop(im, rect) link
画像マニピュレータ im から (x, y, width, height) タプル rect を刈りこむ画像マニピュレータです。
image logo crop = im.Crop("logo.png", (0, 0, 100, 307))
バージョン 7.4.0 で非推奨: 同じ効果が
crop
transform プロパティーで達成できます。
- class im.Data(data, filename, **properties) link
この画像マニピュレータは、バイナリデータから画像をロードします。
- data
バイナリの文字列です。標準フォーマットでの圧縮画像データを指定します。
- filename
画像に関連付けられる "filename" です。これによって Ren'Py にその data のフォーマットに関するヒントを与えるます(実際にディスクからロードはされません)。
- class 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)
- class im.Flip(im, horizontal=False, vertical=False, **properties) link
im (画像マニピュレータ) を水平または垂直に裏返す画像マニピュレータです。 vertical および horizontal で画像が裏返される方向を制御します。
image eileen flip = im.Flip("eileen_happy.png", vertical=True)
- im.Grayscale(im, **properties) link
画像マニピュレータ im の彩度をなくした版を作成する画像マニピュレータです。
バージョン 7.4.0 で非推奨: 同じ効果が
matrixcolor
transform プロパティーをSaturationMatrix(0)
に設定して達成できます。
- im.Sepia(im, **properties) link
画像マニピュレータ im のセピアトーン版を作成する画像マニピュレータです。
バージョン 7.4.0 で非推奨:
matrixcolor
transform プロパティーをSepiaMatrix()
に設定してください。
- class im.Tile(im, size=None, **properties) link
画像マニピュレータ im を size になるまでタイル張りする画像マニピュレータです。
- size
None を指定するか、(width, height) タプルでを指定します。None であれば、デフォルトで (
config.screen_width
,config.screen_height
) になります。
バージョン 7.4.0 で非推奨:
Tile(im, xysize=size, **properties)
を使用してください。
im.MatrixColor link
警告
im.MatrixColor 画像マニピュレータは matrixcolor プロパティーを指定する transform と ATL transform で置き換えられました。各 im.matrix ジェネレーターには matrixcolor に記述されている新しい等価な Matrix が与えられました。
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 を二度使うよりも行列を掛け合わせましょう。そのほうが時間上も画像キャッシュ領域上も遥かに効率的です。
警告
新しい Matrix オブジェクトは im.Matrixcolor とは逆の順序で乗算されます。 X が im.Matrixcolor.x に対応する Matrix であるとすると, C*B*A
は im.a*im.b*im.c
に対応する Matrix となります。
- class 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] に固定されます。
バージョン 7.4.0 で非推奨:
Transform(im, matrixcolor=matrix, **properties)
を使用してください。Transform()
とmatrixcolor
を参照してください。
- class im.matrix link
matrix から im.matrix オブジェクトを構成します。im.matrix オブジェクトがサポートする演算は、行列乗算、スカラー乗算、要素ごとの加算、要素ごとの減算です。これらの演算は、標準の数学演算子 (それぞれ *, *, +, および -) を使って呼び出されます。二つの im.matrix オブジェクトを乗じると行列乗算が行われ、そうでなければスカラー乗算が使われます。
matrix は 20 または 25 要素のリストまたはタプルです。これが 20 要素なら、乗算をしやすいように (0, 0, 0, 0, 1) が付け足され、5x5 の行列になります。
バージョン 7.4.0 で非推奨:
Matrix
を使用してください。
- im.matrix.brightness(b) link
画像の輝度を変える im.matrix を返します。
- b
画像の輝度を変化させる量です。これは -1 から 1 でなければならず、-1 は可能な中で最も暗い画像で、1 は最も明るい画像です。
バージョン 7.4.0 で非推奨:
BrightnessMatrix(b)
にmatrixcolor
を使用してください。
- 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"))
バージョン 7.4.0 で非推奨:
ColorizeMatrix(black_color, white_color)
にmatrixcolor
transform プロパティーを使用してください。
- im.matrix.contrast(c) link
画像のコントラストを変化させる im.matrix を返します。 c は 0.0 より大きく、0.0 から 1.0 の値はコントラストを下げ、1.0 より大きい値はコントラストを上げます。
バージョン 7.4.0 で非推奨:
ContrastMatrix(c)
にmatrixcolor
transform プロパティーを使用してください。
- im.matrix.desaturate() link
画像の彩度を無くす (グレースケールにする) im.matrix を返します。これは、im.matrix.saturation(0) を呼び出すのと等価です。
バージョン 7.4.0 で非推奨:
SaturationMatrix(0)
にmatrixcolor
transform プロパティーを使用してください。
- im.matrix.hue(h) link
高度を変えずに色相を h 度循環させる im.matrix を返します。
バージョン 7.4.0 で非推奨:
HueMatrix(h)
にmatrixcolor
transform プロパティーを使用してください。
- im.matrix.identity() link
色やアルファ値を変えない恒等行列を返します。
バージョン 7.4.0 で非推奨:
IdentityMatrix()
にmatrixcolor
transform プロパティーを使用してください。
- im.matrix.invert() link
アルファ値を変えずに赤、緑、青のチャンネルを反転させる im.matrix を返します。
バージョン 7.4.0 で非推奨:
InvertMatrix(1.0)
にmatrixcolor
transform プロパティーを使用してください。
- im.matrix.opacity(o) link
画像の不透明度を変更する im.matrix を返します。 o は 0.0 で完全に透明、1.0 で完全に不透明になります。
バージョン 7.4.0 で非推奨:
OpacityMatrix(o)
にmatrixcolor
transform プロパティーを使用してください。
- im.matrix.saturation(level, desat=(0.2126, 0.7152, 0.0722)) link
画像の彩度を変える im.matrix を返します。アルファチャンネルはそのままです。
- level
変更後の画像の彩度です。1.0 はそのままの画像で、0.0 はグレースケールです。
- desat
これは 3 要素のタプルで、赤、緑、青チャンネルが完全に彩度を無くされた 3 つのチャンネルにどれだけ置かれるかを制御します。デフォルトは、NTSC テレビジョンシグナルの輝度チャンネルに使われる定数に基づきます。人間の目は緑に一番敏感なので、緑チャンネルは他の 2 つのチャンネルよりも多く残されます。
バージョン 7.4.0 で非推奨:
SaturationMatrix(value, desat)
にmatrixcolor
transform プロパティーを使用してください。
- im.matrix.tint(r, g, b) link
画像のアルファチャンネルはそのままで色合いをつける im.matrix を返します。 r,`g`, および b は 0 から 1 の数で、与えられたチャンネルのうちの最終的な画像に置かれる割合を制御します。(例えば、 r が .5 で、赤チャンネルの値が 100 なら、変換された後の色の赤値は 50 になります。)
バージョン 7.4.0 で非推奨:
TintMatrix(Color((r, g, b)))
にmatrixcolor
transform プロパティーを使用してください。