Engine Class
EditableImage
*เนื้อหานี้แปลโดยใช้ AI (เวอร์ชัน Beta) และอาจมีข้อผิดพลาด หากต้องการดูหน้านี้เป็นภาษาอังกฤษ ให้คลิกที่นี่
สรุป
วิธีการ
Destroy():() |
DrawCircle(center: Vector2,radius: number,color: Color3,transparency: number,combineType: Enum.ImageCombineType,antiAliasing: Enum.AntiAliasing):() |
DrawImage(position: Vector2,image: EditableImage,combineType: Enum.ImageCombineType):() |
DrawImageProjected(mesh: EditableMesh,projection: Dictionary,brushConfig: Dictionary):() |
DrawImageTransformed(position: Vector2,scale: Vector2,rotation: number,image: EditableImage,options: Dictionary?):() |
DrawLine(p1: Vector2,p2: Vector2,color: Color3,transparency: number,combineType: Enum.ImageCombineType,antiAliasing: Enum.AntiAliasing):() |
DrawRectangle(position: Vector2,size: Vector2,color: Color3,transparency: number,combineType: Enum.ImageCombineType):() |
ReadPixelsBuffer(position: Vector2,size: Vector2):buffer |
WritePixelsBuffer(position: Vector2,size: Vector2,buffer: buffer):() |
สมาชิกที่ได้รับทอด
สมาชิก 6 คนที่รับทอดมาจาก Object
เอกสารอ้างอิงเกี่ยวกับ API
คุณสมบัติ
วิธีการ
Destroy
EditableImage:Destroy():()
ส่งค่ากลับ
()
DrawCircle
EditableImage:DrawCircle(
center:Vector2, radius:number, color:Color3, transparency:number, combineType:Enum.ImageCombineType, antiAliasing:Enum.AntiAliasing
):()
พารามิเตอร์
| ค่าเริ่มต้น: "Enabled" |
ส่งค่ากลับ
()
DrawImage
EditableImage:DrawImage(
):()
พารามิเตอร์
ส่งค่ากลับ
()
DrawImageProjected
EditableImage:DrawImageProjected(
):()
พารามิเตอร์
ส่งค่ากลับ
()
DrawImageTransformed
EditableImage:DrawImageTransformed(
):()
พารามิเตอร์
ส่งค่ากลับ
()
ตัวอย่างโค้ด
EditableImage:DrawImageTransformed()
local AssetService = game:GetService("AssetService")
-- ตัวอย่างการวาดภาพที่ถูกหมุนและปรับขนาดลงบน EditableImage อื่น
local srcImage = AssetService:CreateEditableImage({ Size = Vector2.new(256, 256) })
local dstImage = AssetService:CreateEditableImage({ Size = Vector2.new(512, 512) })
-- วาดด้วยการหมุน 45 องศา ปรับขนาด 2 เท่า และวางที่ (100, 100)
dstImage:DrawImageTransformed(
Vector2.new(100, 100), -- ตำแหน่ง
Vector2.new(2, 2), -- ขนาด
45, -- การหมุน (องศา)
srcImage, -- ภาพต้นทาง
{
CombineType = Enum.ImageCombineType.AlphaBlend, -- ตัวเลือก เริ่มต้นคือ AlphaBlend
SamplingMode = Enum.ResamplerMode.Default, -- ตัวเลือก เริ่มต้นคือ Default
PivotPoint = srcImage.Size / 2, -- ตัวเลือก เริ่มต้นคือกลางของภาพต้นทาง
}
)EditableImage:DrawImageTransformed() - ตัด
local AssetService = game:GetService("AssetService")
-- รูปภาพต้นฉบับ
local srcImage = AssetService:CreateEditableImageAsync(Content.fromUri(assetUri))
-- พื้นที่ตัดกำหนดโดยการเลื่อนและขนาด
local cropOffset = Vector2.new(50, 50)
local cropSize = Vector2.new(100, 100)
-- รูปภาพปลายทางที่มีขนาดของพื้นที่ตัด
local dstImage = AssetService:CreateEditableImage({ Size = cropSize })
-- ตำแหน่ง (มุมซ้ายบน)
local position = Vector2.new(0, 0)
-- สเกลแฟคเตอร์ (ไม่มีการปรับขนาด)
local scale = Vector2.new(1, 1)
-- มุมหมุน (ไม่มีการหมุน)
local rotation = 0
-- วาดรูปภาพต้นฉบับลงบนรูปภาพปลายทางพร้อมจุดหมุนที่ปรับแต่งเพื่อตัดภาพ
dstImage:DrawImageTransformed(position, scale, rotation, srcImage, {
CombineType = Enum.ImageCombineType.Overwrite,
PivotPoint = cropOffset, -- ตั้งจุดหมุนไปที่ cropOffset เพื่อเริ่มการวาดจากที่นั่น
})DrawLine
EditableImage:DrawLine(
p1:Vector2, p2:Vector2, color:Color3, transparency:number, combineType:Enum.ImageCombineType, antiAliasing:Enum.AntiAliasing
):()
พารามิเตอร์
| ค่าเริ่มต้น: "Enabled" |
ส่งค่ากลับ
()
DrawRectangle
EditableImage:DrawRectangle(
position:Vector2, size:Vector2, color:Color3, transparency:number, combineType:Enum.ImageCombineType
):()
พารามิเตอร์
ส่งค่ากลับ
()
ReadPixelsBuffer
ส่งค่ากลับ
ตัวอย่างโค้ด
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
ส่งค่ากลับ
()
ตัวอย่างโค้ด
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))
-- ตั้งค่าความโปร่งใสให้เป็น 255 เพื่อทำให้พิกเซลทั้งหมดทึบแสงเต็มที่
buffer.writeu8(pixelsBuffer, pixelIndex + 3, 255)
end
editableImage:WritePixelsBuffer(Vector2.zero, editableImage.Size, pixelsBuffer)