EditableImage

非推奨を表示

*このコンテンツは、ベータ版のAI(人工知能)を使用して翻訳されており、エラーが含まれている可能性があります。このページを英語で表示するには、 こちら をクリックしてください。

作成できません

EditableImage により、実行時に画像を作成および操作できます。

To create a blank EditableImage , use AssetService:CreateEditableImage() . To create an EditableImage from an existing image, use 1> Class.AssetService:CreateEditableImageAsync()1> .

Class.EditableImage は、Content プロパティの任意の画像を使用できます。たとえば、ImageLabel.ImageContent または、0> Class.MeshPart.TextureContent0> などの画像。これは、EditableImage

Class.EditableImage コーディネートシステムは、画像の左上隅に相対しています:

  • 左上: (0, 0)
  • 右下: (Size.X - 1, Size.Y - 1)

Class.AssetService:PromptCreateAssetAsync() を使用して、Content プロパティを持つオブジェクトを公開すると、編集可能な画像は EditableImage として公開され、プロパティは新しいアセット ID に設定されます。

概要

プロパティ

  • 読み取り専用
    複製されていません
    並列読み取り

    ピクセルで EditableImage のサイズ。

方法

プロパティ

読み取り専用
複製されていません
並列読み取り

ピクセルで EditableImage のサイズ。最大サイズは 1024×1024 です。このプロパティを大きなサイズに設定すると、サイズが 1024 に収まります。

このプロパティは、編集可能な画像のサイズを変更する キャンバス サイズを変更するが、コンテンツをサイズ変更することはありません。サイズ変更を大きくすると、新しいピクセルが RGBA 値の [0, 0, 0, 0]

方法

Destroy

void

戻り値

void

DrawCircle

void

Class.EditableImage の指定されたポイントに円を描きます。円が半透明である場合、ソースオーバーブレンドを使用して、ピクセルの後ろにブレンドされます。

パラメータ

center: Vector2

Class.EditableImage のトップ左隅に相対するサークルの中心。外のキャンバス領域は許可されています。

radius: number

ピクセルでサークルの範囲。

color: Color3

サークルの色。

transparency: number

透明な円と 0 が完全に不透明であり、透明な円と 1 が完全に透明である。

ソース画像のピクセルが追加された画像のピクセルとどのようにブレンドされるか。


戻り値

void

DrawImage

void

この EditableImage をドローすると、新しい画像の一部のみが描画されます。位置の外の位置は、Class.EditableImage のドローを許可します。

パラメータ

position: Vector2

追加された画像の左上隅にドローされる位置です。

image: Object

この EditableImage に描画するための Class.EditableImage 。

ソース画像のピクセルが追加された画像のピクセルとどのように混ざるか。


戻り値

void

DrawImageProjected

void

パラメータ

mesh: Object
projection: Dictionary
brushConfig: Dictionary

戻り値

void

DrawImageTransformed

void

このメソッドは、EditableImage をこの EditableImage に変換して、スケーリングや回転などの変形を適用して、EditableImage に入ります。ポジションパラメータは、2>EditableImage2> の位置を、変形後にスキンの境界の外にある位置で指定します。5>EditableImage5>

パラメータ

position: Vector2

この画像にソース画像のピボットポイントが置かれるピクセルの位置を指定します。

scale: Vector2

X と Y 軸に沿ってソース画像のサイズ変更ファクター。

rotation: number

ソース画像のピボットポイントの周りに適用された回転角度。

image: Object

この画像に描画するソース EditableImage

options: Dictionary

追加の構成のオプション辞典:

  • CombineType : ソース画像のピクセルと目的地のピクセルをどのようにマッチさせるかを指定します。デフォルトは Enum.ImageCombineType.AlphaBlend です。
  • SamplingMode : サンプリングメソッドを指定します (例: Default for bilinear または Pixelated for nearest neighbor) 。デフォルトは 0> enum.ResamplerMode.Default0> です。
  • PivotPoint : スケーリングと回転のソース画像内のピボットポイントを指定します。デフォルトは、ソース画像の中心 (つまり Image.Size / 2) です。

戻り値

void

コードサンプル

EditableImage:DrawImageTransformed()

local AssetService = game:GetService("AssetService")
-- Example of drawing a rotated and scaled image onto another EditableImage
local srcImage = AssetService:CreateEditableImage({ Size = Vector2.new(256, 256) })
local dstImage = AssetService:CreateEditableImage({ Size = Vector2.new(512, 512) })
-- Drawing with a rotation of 45 degrees, scaling by 2x, and placing at (100, 100)
dstImage:DrawImageTransformed(
Vector2.new(100, 100), -- Position
Vector2.new(2, 2), -- Scale
45, -- Rotation (degrees)
srcImage, -- Source image
{
CombineType = Enum.ImageCombineType.AlphaBlend, -- Optional, default is AlphaBlend
SamplingMode = Enum.ResamplerMode.Default, -- Optional, default is Default
PivotPoint = srcImage.Size / 2 -- Optional, default is center of the source image
}
)
EditableImage:DrawImageTransformed() - Crop

local AssetService = game:GetService("AssetService")
-- Source image
local srcImage = AssetService:CreateEditableImageAsync(Content.fromUri(assetUri))
-- Crop area defined by offset and size
local cropOffset = Vector2.new(50, 50)
local cropSize = Vector2.new(100, 100)
-- Destination image with size of the crop area
local dstImage = AssetService:CreateEditableImage({ Size = cropSize })
-- Position (top-left corner)
local position = Vector2.new(0, 0)
-- Scale factors (no scaling)
local scale = Vector2.new(1, 1)
-- Rotation angle (no rotation)
local rotation = 0
-- Draw the source image onto the destination image with adjusted pivot to crop the image
dstImage:DrawImageTransformed(
position,
scale,
rotation,
srcImage,
{
CombineType = Enum.ImageCombineType.Overwrite,
PivotPoint = cropOffset -- Set pivot point to cropOffset to start drawing from there
}
)

DrawLine

void

Class.EditableImage のピクセル間の 2つの提供されたポイントの間に、anti-aliased のラインを描きます。

パラメータ

ラインの開始点。

線の終点。

color: Color3

行の色。

transparency: number

行の透明性。

ソース画像のピクセルが追加された画像のピクセルとどのようにブレンドされるか。


戻り値

void

DrawRectangle

void

Class.EditableImage のサイズを指定した左上位置にドラログします。

パラメータ

position: Vector2

位置は、他の描画メソッドとは異なり、これは EditableImage のキャンバス境界の外にありません。

size: Vector2

ドローする正方形のサイズ、ピクセルです。

color: Color3

長方形の色。

transparency: number

正方形の透明度。

ソース画像のピクセルが追加された画像のピクセルとどのようにブレンドされるか。


戻り値

void

ReadPixelsBuffer

並列書き込み

Class.EditableImage:ReadPixels()|ReadPixels() バーファーを返す代わりにテーブルを返すバージョン。バーファーの各数は単一バイトであり、テーブルの各数は 4 バイトです。つまり、ReadPixelsBuffer() は、Class

このメソッドは、EditableImage の描画メソッドとは異なり、透明度ではなくアルファを使用します。

パラメータ

position: Vector2

ピクセルの長方形の領域の左上隅。

size: Vector2

ピクセルの長方形の領域のサイ既読。


戻り値

各ピクセルが 4 バイト (レッド、グリーン、ブルー、アルファ) で表されるバッファーの場所。バッファーの長さは Size.X * Size.Y * 4 バイトで計算できます。

コードサンプル

EditableImage:ReadPixelsBuffer()

local AssetService = game:GetService("AssetService")
local options = { Size = Vector2.new(32,32) }
local editableImage = AssetService:CreateEditableImage(options)
local pixelsBuffer = editableImage:ReadPixelsBuffer(Vector2.zero, Vector2.new(2, 1))
local color1 = Color3.fromRGB(buffer.readu8(pixelsBuffer, 0), buffer.readu8(pixelsBuffer, 1), buffer.readu8(pixelsBuffer, 2))
local transparency1 = 1 - buffer.readu8(pixelsBuffer, 3)
local color2 = Color3.fromRGB(buffer.readu8(pixelsBuffer, 4), buffer.readu8(pixelsBuffer, 5), buffer.readu8(pixelsBuffer, 6))
local transparency2 = 1 - buffer.readu8(pixelsBuffer, 7)
local averageColor = color1:Lerp(color2, 0.5)
local averageTransparency = (transparency1 + transparency2) / 2
local part = Instance.new("Part")
part.Color = averageColor
part.Transparency = averageTransparency
part.Parent = workspace

WritePixelsBuffer

void

Class.EditableImage:WritePixels()|WritePixels() のバージョン、バッファーを取り而える代わりにテーブルを取ります。バッファーの各数は単一バイトであり、テーブルの各数は 4 バイトです。つまり、WritePixelsBuffer()

このメソッドは、EditableImage の描画メソッドとは異なり、透明度ではなくアルファを使用します。

パラメータ

position: Vector2

長方形の領域の左上隅で、ピクセルを描画します。

size: Vector2

ピクセルの長方形の領域のサイズ。

buffer: buffer

各ピクセルを 4 バイト (レッド、グリーン、ブルー、アルファそれぞれ) で表現するバッファー。バッファーの長さは Size.X * Size.Y * 4 バイトです。


戻り値

void

コードサンプル

EditableImage:WritePixelsBuffer()

local AssetService = game:GetService("AssetService")
local options = { Size = Vector2.new(32,32) }
local editableImage = AssetService:CreateEditableImage(options)
local pixelsBuffer = editableImage:ReadPixelsBuffer(Vector2.zero, editableImage.Size)
for i = 1, editableImage.Size.X * editableImage.Size.Y do
local pixelIndex = (i - 1) * 4
buffer.writeu8(pixelsBuffer, pixelIndex, 255 - buffer.readu8(pixelsBuffer, pixelIndex))
buffer.writeu8(pixelsBuffer, pixelIndex + 1, 255 - buffer.readu8(pixelsBuffer, pixelIndex + 1))
buffer.writeu8(pixelsBuffer, pixelIndex + 2, 255 - buffer.readu8(pixelsBuffer, pixelIndex + 2))
end
editableImage:WritePixelsBuffer(Vector2.zero, editableImage.Size, pixelsBuffer)

イベント