EditableImage

사용되지 않는 항목 표시

*이 콘텐츠는 AI(베타)를 사용해 번역되었으며, 오류가 있을 수 있습니다. 이 페이지를 영어로 보려면 여기를 클릭하세요.

만들 수 없음

EditableImage 는 이미지의 런타임 생성 및 조작을 지원합니다.

EditableImage 을 생성하려면 AssetService:CreateEditableImage() 를 사용합니다. 기존 이미지에서 EditableImage 을 생성하려면 2>Class.AssetService:CreateEditableImageAsync()2> 를 사용합니다.

EditableImage 는 이미지를 가져오는 모든 속성에서 사용할 수 있습니다. 이 속성은 컨텐츠 속성에 대해 Content 또는 ImageLabel.ImageContent 와 같이 사용됩니다. 이는 ��������

Class.EditableImage 좌표 시스템은 이미지의 왼쪽 상단에 대해 상대적입니다.

  • 왼쪽 상단: (0, 0)
  • 오른쪽 하단: (Size.X - 1, Size.Y - 1)

Class.AssetService:PromptCreateAssetAsync() 를 사용하여 참조하는 Content 속성을 가진 개체를 게시하면 편집 가능한 이미지가 편집 가능한 이미지로 게시되고 속성이 새 자산 ID로 설정됩니다.

요약

속성

  • 읽기 전용
    복제되지 않음
    병렬 읽기

    클래스 EditableImage의 크기를 픽셀로 표시합니다.

메서드

속성

읽기 전용
복제되지 않음
병렬 읽기

Class.EditableImage의 크기를 픽셀 단위로 지정합니다. 최대 크기는 1024×1024입니다. 이 속성을 더 크게 설정하면 1024가 늘어납니다.

이 속성을 설정하면 캔버스 크기가 편집 이미지의 크기를 변경하지만 콘텐츠를 크기 조정하지는 않습니다. 크기를 변경하면 [0, 0, 0, 0]의 RGBA 값이 설정됩니다. 크기를 변경

메서드

Destroy

void

반환

void

DrawCircle

void

Class.EditableImage 의 지정된 위치에서 원을 그립니다. 원이 반투명인 경우 소스 위에서 믹싱하여 픽셀을 혼합합니다.

매개 변수

center: Vector2

Class.EditableImage 의 왼쪽 상단 모서리에 대한 원의 중심. 캔버스 범위 밖의 위치는 허용됩니다.

radius: number

원의 반경을 피소트 단위로 지정합니다.

color: Color3

원의 색.

transparency: number

0이 완전히 불투명하고 1이 완전히 투명한 원의 투명도.

원본 이미지의 픽셀이 추가 이미지의 픽셀과 어떻게 혼합됩니다.


반환

void

DrawImage

void

EditableImage 에 다른 EditableImage 를 그립니다. 위치에 따라 캔버스 영역 밖의 위치는 허용되므로 새 이미지의 일부만 그려집니다.

매개 변수

position: Vector2

추가 이미지의 왼쪽 상단 모서리에 색상이 그려질 위치입니다.

image: Object

EditableImage 에 그려 EditableImage .

원본 이미지의 픽셀과 추가 이미지의 픽셀을 어떻게 혼합해야 합니까.


반환

void

DrawImageProjected

void

매개 변수

mesh: Object
projection: Dictionary
brushConfig: Dictionary

반환

void

DrawImageTransformed

void

이 메서드를 사용하면 크기 조정 및 회전과 같은 변환을 적용한 이 EditableImage 에 트랜스포머를 그리고, 위치 매개 변수는 변환 후에 소스 이미지의 피벗 포인트를 이 이미지에 배치하도록 지정합니다. 캔버스 범위 외의 위치는 그려지지 않도

매개 변수

position: Vector2

원본 이미지의 피벗 포인트가 이 이미지에 배치되는 위치를 피벗 포인트 위치에 대한 위치 매개 변수에 대해 설명합니다.

scale: Vector2

X 및 Y 축을 따라 원본 이미지에 대한 크기 조정 요소.

rotation: number

원본 이미지의 피벗 점 주위에 적용된 회전 각도입니다.

image: Object

이 이미지에 그려질 원본 EditableImage입니다.

options: Dictionary

추가 구성을 위한 선택적 사전:

  • CombineType : 원본 이미지의 픽셀이 대상의 픽셀과 어떻게 결합하는지 지정합니다. 기본은 Enum.ImageCombineType.AlphaBlend 입니다.
  • SamplingMode : 샘플 메서드를 지정(예: Default 또는 가장 가까운 이웅 이웅 이웅 이웅 이웅 이웅 이웅 이웅 이웅 이웅 이웅 이웅 이웅 이웅 이웅 이웅 이웅 이웅 이웅 이웅 이웅 이��
  • 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 두 개의 지점 사이에 한 픽셀 두께의 반악기 라인을 그립니다.

매개 변수

라인의 시작 점.

줄의 끝점입니다.

color: Color3

줄의 색.

transparency: number

줄의 투명도.

원본 이미지의 픽셀이 추가 이미지의 픽셀과 어떻게 혼합됩니다.


반환

void

DrawRectangle

void

지정된 크기의 EditableImage 의 왼쪽 상단에 있는 직사각형을 그립니다.

매개 변수

position: Vector2

직사각형의 왼쪽 상단 위치. 다른 그림 메서드와는 달리 이 작업은 EditableImage 의 캔버스 영역 밖에 수행할 수 없습니다.

size: Vector2

그리기 직사각형의 크기, 인 픽셀.

color: Color3

직사각형의 색.

transparency: number

직사각형의 투명도.

원본 이미지의 픽셀이 추가 이미지의 픽셀과 어떻게 혼합됩니다.


반환

void

ReadPixelsBuffer

병렬 쓰기

버퍼를 테이블 대신 반환하는 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

버퍼 대신 테이블이 아닌 WritePixels() 버전입니다. 각 버퍼 번호는 단일 바이트이며, 각 테이블 번호는 4바이트입니다, 만 WritePixelsBuffer() 더 효율적입

Class.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)

이벤트