EditableImage

Artık kullanılmayanları göster

*Bu içerik, yapay zekâ (beta) kullanılarak çevrildi ve hatalar içerebilir. Sayfayı İngilizce görüntülemek için buraya tıkla.

Oluşturulamaz

EditableImage ile, görüntülerin çalışma anında oluşturulması ve manipüleasyonu sağlanır.

Boş bir EditableImage oluşturmak için, AssetService:CreateEditableImage() kullanın. Mevcut bir EditableImage'i oluşturmak için, 1> Class.AssetService:CreateEditableImageAsync()1> kullanın.

Class.EditableImage Content özelliğindeki herhangi bir içerik kullanılabilir, örneğiniz ImageLabel.ImageContent veya 0> Class.MeshPart.TextureContent0> . Bunu yapmak için içerik özelliğini 3> Datatype.Content.fromObject

Class.EditableImage koordinat sistemi, görüntünün sol üst kısmına dayanmaktadır:

  • Sol üst: (0, 0)
  • Alt-sağ: (Size.X - 1, Size.Y - 1)

Class.AssetService:PromptCreateAssetAsync() kullanarak bir nesneyi yayınladığınızda, Content özelliğine sahip bir nesneyi referans eden EditableImage ile, edilebilir resim bir resim olarak yayınlanır ve özellik yeni bir varlık ID'siyle ayarlanır.

Yayınlanmış Deneyimler için Düzenleyici Görüntüyü Etkileşime Geç

Güvenlik amaçlı olarak, EditableImage kaynaklarınızı Kimlik doğrulandıvarsayılan olarak gizlidir. EditableImage kullanımını etkinleştirmek için, 13 yaşından daha yaşlı olmalı ve Kim

İzinler

Abus için önlemler, AssetService:CreateEditableImageAsync() sadece görüntü varlıklarını yükleme ve düzenleme izin verir:

  • Bu, deneyimin sahibi olan kişinin sahibidir (deneyim bir kişi tarafından sahiplenmişse).
  • Bu bir grubun ( deneyim grupsahibi ise ) sahibidir.
  • Bu, giriş yapılmış Studio kullanıcısı tarafından sağlanır (yerleşim dosyası Roblox'a henüz kaydedilmedi veya yayınlanmadıysa).

Yukarıdaki kriterlere uymayan bir varlığı yüklemeye çalışırsa API'ler bir hata oluşturur.

Özet

Özellikler

  • Salt Okunur
    Çoğaltılmamış
    Paralel oku

    Class.EditableImage'in pikseldeki büyüklüğü.

Yöntemler

Özellikler

Salt Okunur
Çoğaltılmamış
Paralel oku

Boyutu EditableImage 像'de. Maksimum boyut 1024×1024. Bir EditableImage küçültülemez; bu özellik sadece okunur. İçeriği

Yöntemler

Destroy

void

Görüntünün içeriklerini yok eder ve anında kullanılmış belleği geri alır.


Dönüşler

void

DrawCircle

void

Class.EditableImage ile belirlenen noktada bir çember çeker. Çember semi-şeffafsa, kaynağın arkasındaki pikselle karışacaktır.

Parametreler

center: Vector2

Çemberin sol üst köşesine, EditableImage ile ilgili üst kısma. Dış çizgi öğeleri izinlidir.

radius: number

Çemberin pikselindeki çevre.

color: Color3

Çemberin rengi.

transparency: number

0'ın tamamen opak olması ve 1'in tamamen şeffaflığı.

Kaynağın görüntüsüyle eklenen görüntünün pikseli nasıl karıştırılır.


Dönüşler

void

DrawImage

void

Bu EditableImage ın içine bir başka Class.EditableImage çizilir. Bölgelerin dışındaki pozisyonlar izin verilir, böylece yeni görüntünün sadece bir kısmı çizilir.

Parametreler

position: Vector2

Eklenen görünümün sol üst köşesinin çizileceği konum.

image: Object

Bu EditableImage içine çizmek için.

Kaynağın görüntüsünün eklenen görüntüyle nasıl karıştırılacağı.


Dönüşler

void

DrawImageProjected

void

Parametreler

mesh: Object
projection: Dictionary
brushConfig: Dictionary

Dönüşler

void

DrawImageTransformed

void

Bu yöntem, EditableImage ile bu EditableImage arasında dönüştürme uygulanmış, böylece küçültme ve döndürme gibi işlemler yapılmıştır. Pozisyon değiştirgesi, kaynağın yeni görüntüsünün nerede bu görüntüye yerleştirileceğini belirtir, böylece yeni görü

Parametreler

position: Vector2

Kaynağın görüntüsünün pivot noktasının bu görüntüye yerleştirileceği pikseldeki konum.

scale: Vector2

X ve Y eksenlerinde kaynağın görüntüsü için ölçekleme faktörleri.

rotation: number

Kaynağın görüntüsünün pivot noktası etrafında uygulanan dönme açısı.

image: Object

Bu resimde çizilecek kaynağın EditableImage olması gerekir.

options: Dictionary

Ekstra yapılandırma için opcional sözlük:

  • CombineType : Kaynağın görüntüsünün hedef ile nasıl karıştığını belirtir.Varsayılan şu şekildedir. Enum.ImageCombineType.AlphaBlend .
  • SamplingMode : Özellikleme yöntemini belirtir (örneğin, Default için bilinebilir veya Pixelated için en yakın komşu için).Varsayılan, 0> SamplingMode1>0> .
  • PivotPoint : Kaynağın görüntüsündeki pivot noktasını belirtir.Varsayılan, kaynağın görüntüsündeki merkezidir (yani Image.Size / 2).

Dönüşler

void

Kod Örnekleri

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

İki verilen nokta arasındaki EditableImage bir antialiasi çizgisi çiziyor.

Parametreler

Çizginin başlangıcını.

Çizginin son noktası.

color: Color3

Hatın rengi.

transparency: number

Çizginin透明liği.

Kaynağın görüntüsüyle eklenen görüntünün pikseli nasıl karıştırılır.


Dönüşler

void

DrawRectangle

void

Verilen boyutta EditableImage taraftaki sağ üst kısma olan bir kare çizilir.

Parametreler

position: Vector2

Topun sol üst kısmında bulunur. Diğer çizim yöntemlerinden farklı olarak, bu EditableImage kanvasının dışında olabilir.

size: Vector2

Çizilecek olan kareğin boyutu, piksel olarak.

color: Color3

Dikdörtgenin rengi.

transparency: number

Dikdörtgenin Saydamlığı.

Kaynağın görüntüsüyle eklenen görüntünün pikseli nasıl karıştırılır.


Dönüşler

void

ReadPixelsBuffer

Paralel yaz

Class.EditableImage:ReadPixels()|ReadPixels() bir tablo yerine bir tampon döndürür. Her tabloyu oluşturan sayının bir tek başına bir başına bir başına bir başına bir başına bir başına bir başına bir başına bir başına bir başına b

Bu yöntemin transparansızlık yerine alfa kullandığını, EditableImage çizim yöntemlerinden farklı olduğunu unutmayın.

Parametreler

position: Vector2

Okuyacak piksel bölgesinin sol üst kısmı.

size: Vector2

Okuyacak piksel bölgesinin boyutu.


Dönüşler

Her pikselin dört başlıca (kırmızı, yeşil, mavi ve alfa) temsil edildiği bir başvuru alanı. Buffer'nin uzunluğu Size.X * Size.Y * 4 başvuru boyutları olarak hesaplanabilir.

Kod Örnekleri

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

Bir tablo yerine bir tampon alır. Bu, tamponun her bir sayısının 4 bit olması yerine bir tek birimeyi temsil eder. WritePixels() daha az belleğe alan kullanır, böylece Class.EditableImage:WritePixels()|WritePixels()</

Bu yöntemin transparansızlık yerine alfa kullandığını, EditableImage çizim yöntemlerinden farklı olduğunu unutmayın.

Parametreler

position: Vector2

Pikseli çekmek için sağ bölgeyi sol kısma çevirin.

size: Vector2

Yazmak için piksel'in dikdörtgen bölgesinin büyüklüğü.

buffer: buffer

Her pikselin dört başlıca (kırmızı, yeşil, mavi ve alfa) temsil edildiği bir tampon. Buffer'nin uzunluğu Size.X * Size.Y * 4 bytes olmalıdır.


Dönüşler

void

Kod Örnekleri

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)

Etkinlikler