Lớp công cụ
EditableImage
*Nội dung này được dịch bằng AI (Beta) và có thể có lỗi. Để xem trang này bằng tiếng Anh, hãy nhấp vào đây.
Tóm tắt
Phương Pháp
Thành viên kế thừa
6 thành viên kế thừa từ Object
Tài Liệu Tham Khảo API
Thuộc Tính
Phương Pháp
Destroy
EditableImage:Destroy():()
Lợi Nhuận
()
DrawCircle
EditableImage:DrawCircle(
center:Vector2, radius:number, color:Color3, transparency:number, combineType:Enum.ImageCombineType, antiAliasing:Enum.AntiAliasing, alphaBlendType:Enum.ImageAlphaType
):()
Tham Số
| Giá Trị Mặc Định: Enabled |
| Giá Trị Mặc Định: Default |
Lợi Nhuận
()
DrawImage
EditableImage:DrawImage(
position:Vector2, image:EditableImage, combineType:Enum.ImageCombineType, alphaBlendType:Enum.ImageAlphaType
):()
Tham Số
| Giá Trị Mặc Định: Default |
Lợi Nhuận
()
DrawImageProjected
EditableImage:DrawImageProjected(
):()
Tham Số
Lợi Nhuận
()
SampleImageProjected
EditableImage:SampleImageProjected(
projectionSource:Object, sourceTexture:EditableImage, projectionConfig:Dictionary, brushConfig:Dictionary
):()
Tham Số
Lợi Nhuận
()
DrawImageTransformed
EditableImage:DrawImageTransformed(
):()
Tham Số
Lợi Nhuận
()
Mẫu mã
EditableImage:DrawImageTransformed()
local AssetService = game:GetService("AssetService")
-- Ví dụ về việc vẽ một hình ảnh đã xoay và thay đổi kích thước lên một EditableImage khác
local srcImage = AssetService:CreateEditableImage({ Size = Vector2.new(256, 256) })
local dstImage = AssetService:CreateEditableImage({ Size = Vector2.new(512, 512) })
-- Vẽ với góc xoay 45 độ, thay đổi kích thước 2x, và đặt tại (100, 100)
dstImage:DrawImageTransformed(
Vector2.new(100, 100), -- Vị trí
Vector2.new(2, 2), -- Tỷ lệ
45, -- Xoay (độ)
srcImage, -- Hình ảnh nguồn
{
CombineType = Enum.ImageCombineType.AlphaBlend, -- Tùy chọn, mặc định là AlphaBlend
SamplingMode = Enum.ResamplerMode.Default, -- Tùy chọn, mặc định là Default
PivotPoint = srcImage.Size / 2, -- Tùy chọn, mặc định là trung tâm của hình ảnh nguồn
}
)EditableImage:DrawImageTransformed() - Cắt
local AssetService = game:GetService("AssetService")
-- Hình ảnh nguồn
local srcImage = AssetService:CreateEditableImageAsync(Content.fromUri(assetUri))
-- Khu vực cắt được xác định bởi độ lệch và kích thước
local cropOffset = Vector2.new(50, 50)
local cropSize = Vector2.new(100, 100)
-- Hình ảnh đích với kích thước của khu vực cắt
local dstImage = AssetService:CreateEditableImage({ Size = cropSize })
-- Vị trí (góc trên bên trái)
local position = Vector2.new(0, 0)
-- Hệ số tỷ lệ (không thay đổi tỷ lệ)
local scale = Vector2.new(1, 1)
-- Góc xoay (không xoay)
local rotation = 0
-- Vẽ hình ảnh nguồn lên hình ảnh đích với điểm pivot điều chỉnh để cắt hình ảnh
dstImage:DrawImageTransformed(position, scale, rotation, srcImage, {
CombineType = Enum.ImageCombineType.Overwrite,
PivotPoint = cropOffset, -- Đặt điểm pivot thành cropOffset để bắt đầu vẽ từ đó
})DrawLine
EditableImage:DrawLine(
p1:Vector2, p2:Vector2, color:Color3, transparency:number, combineType:Enum.ImageCombineType, antiAliasing:Enum.AntiAliasing, alphaBlendType:Enum.ImageAlphaType
):()
Tham Số
| Giá Trị Mặc Định: Enabled |
| Giá Trị Mặc Định: Default |
Lợi Nhuận
()
DrawRectangle
EditableImage:DrawRectangle(
position:Vector2, size:Vector2, color:Color3, transparency:number, combineType:Enum.ImageCombineType, alphaBlendType:Enum.ImageAlphaType
):()
Tham Số
| Giá Trị Mặc Định: Default |
Lợi Nhuận
()
ReadPixelsBuffer
Lợi Nhuận
Mẫu mã
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 = (255 - buffer.readu8(pixelsBuffer, 3)) / 255
local color2 =
Color3.fromRGB(buffer.readu8(pixelsBuffer, 4), buffer.readu8(pixelsBuffer, 5), buffer.readu8(pixelsBuffer, 6))
local transparency2 = (255 - buffer.readu8(pixelsBuffer, 7)) / 255
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 = workspaceWritePixelsBuffer
Lợi Nhuận
()
Mẫu mã
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))
-- Đặt alpha thành 255 để làm cho tất cả các pixel hoàn toàn không trong suốt.
buffer.writeu8(pixelsBuffer, pixelIndex + 3, 255)
end
editableImage:WritePixelsBuffer(Vector2.zero, editableImage.Size, pixelsBuffer)