Paket | flash.display |
Sınıf | public class BitmapData |
Miras Alma | BitmapData Object |
Uygular | IBitmapDrawable |
Dil Sürümü: | ActionScript 3.0 |
Çalışma Zamanı Sürümleri: | Flash Player 9, AIR 1.0, Flash Lite 4 |
flash.display.Loader
sınıfıyla yüklediğiniz bir bitmap görüntüsü için BitmapData öğesine de erişebilirsiniz.
Bu sınıf, Flash Player'ın dahili görüntüleme güncelleme yordamlarından bitmap oluşturma işlemlerini ayırmanızı sağlar. Bir BitmapData nesnesini doğrudan işleyerek, vektör verilerinden sürekli yeniden içerik çizmenin neden olduğu kare başına yüke neden olmadan karmaşık görüntüler oluşturabilirsiniz.
BitmapData sınıfının yöntemleri, bitmap olmayan görüntüleme nesneleri için kullanılabilir filtreler üzerinden kullanılamayan efektleri destekler.
BitmapData nesnesi, bir piksel verileri dizisi içerir. Bu veriler tamamen opak bir bitmap'i veya alfa kanalı verilerini içeren saydam bir bitmap'i temsil edebilir. Her iki tür BitmapData nesnesi de 32 bit tam sayı arabelleği olarak saklanır. 32 bit tam sayının her biri, bitmap'te tek bir pikselin özelliklerini belirler.
Her 32 bit tam sayı, pikselin alfa saydamlığını ve kırmızı, yeşil ve mavi (ARGB) değerlerini açıklayan dört adet 8 bit kanal değerinin (0 - 255 arasında) birleşimidir. (ARGB değerleri için en yüksek değerli bayt, ardından kırmızı, yeşil ve mavinin geldiği alfa kanalı değerini temsil eder.)
Dört kanal (alfa, kırmızı, yeşil ve mavi), BitmapData.copyChannel()
yöntemi veya DisplacementMapFilter.componentX
ve DisplacementMapFilter.componentY
özellikleriyle kullanıldığında sayı olarak temsil edilir ve bu sayılar BitmapDataChannel sınıfında şu sabitlerle temsil edilir:
-
BitmapDataChannel.ALPHA
-
BitmapDataChannel.RED
-
BitmapDataChannel.GREEN
-
BitmapDataChannel.BLUE
Bitmap nesnesinin bitmapData
özelliğini kullanarak bir Bitmap nesnesine BitmapData nesneleri ekleyebilirsiniz.
Graphics.beginBitmapFill()
yöntemini kullanarak bir Graphics nesnesini doldurmak için BitmapData nesnesi kullanabilirsiniz.
AIR çalışma zamanında, DockIcon, Icon, InteractiveIcon ve SystemTrayIcon sınıflarının her biri, simgeye ilişkin bitmap görüntülerini tanımlayan bir BitmapData dizisi olan bitmaps
özelliğini içerir.
AIR 1.5 ve Flash Player 10'da, bir BitmapData nesnesi için maksimum boyut genişlikte ve yükseklikte 8.191 pikseldir ve toplam piksel sayısı 16.777.215'i geçemez. (Bu nedenle, bir BitmapData nesnesi 8.191 piksel genişliğindeyse en fazla 2.048 piksel yüksekliğinde olabilir.) Flash Player 9 ve önceki sürümleri ile AIR 1.1 ve önceki sürümlerinde, sınırlama yükseklikte 2.880 piksel ve genişlikte 2.880 pikseldir.
AIR 3 ve Flash Player 11'den başlamak üzere, BitmapData nesnesine yönelik boyut sınırları kaldırıldı. Maksimum bitmap boyutu şu anda işletim sistemine bağlıdır.
BitmapData nesnesi geçersizse (örneğin height == 0
ve width == 0
değerlerine sahipse) veya dispose() yoluyla kaldırılmışsa, BitmapData nesnesinin herhangi bir yöntemine ya da özelliğine yapılan çağrılar bir ArgumentError hatası atar.
İlgili API Öğeleri
flash.desktop.DockIcon.bitmaps
flash.display.Graphics.beginBitmapFill()
flash.desktop.Icon.bitmaps
flash.desktop.InteractiveIcon.bitmaps
flash.display.Loader
flash.desktop.SystemTrayIcon.bitmaps
Özellik | Tanımlayan: | ||
---|---|---|---|
constructor : Object
Belirli bir nesne örneği için sınıf nesnesine veya yapıcı işlevine bir başvuru. | Object | ||
height : int [salt okunur]
Bitmap görüntüsünün piksel olarak yüksekliği. | BitmapData | ||
rect : Rectangle [salt okunur]
Bitmap görüntüsünün boyut ve konumunu tanımlayan dikdörtgen. | BitmapData | ||
transparent : Boolean [salt okunur]
Bitmap görüntüsünün piksel başına saydamlığı destekleyip desteklemediğini tanımlar. | BitmapData | ||
width : int [salt okunur]
Bitmap görüntüsünün piksel olarak genişliği. | BitmapData |
Yöntem | Tanımlayan: | ||
---|---|---|---|
Belirtilen genişlik ve yükseklik ile bir BitmapData nesnesi oluşturur. | BitmapData | ||
applyFilter(sourceBitmapData:BitmapData, sourceRect:Rectangle, destPoint:Point, filter:BitmapFilter):void
Bir kaynak görüntüyü ve filtre nesnesini alıp filtrelenen görüntüyü oluşturur. | BitmapData | ||
İçerilen bitmap'in tam kopyasıyla orijinal örneğin bir klonu olan yeni bir BitmapData nesnesi döndürür. | BitmapData | ||
ColorTransform nesnesi kullanarak bitmap görüntüsünün belirtilen bir alanındaki renk değerlerini ayarlar. | BitmapData | ||
İki BitmapData nesnesini karşılaştırır. | BitmapData | ||
copyChannel(sourceBitmapData:BitmapData, sourceRect:Rectangle, destPoint:Point, sourceChannel:uint, destChannel:uint):void
Başka bir BitmapData nesnesinin veya geçerli BitmapData nesnesinin bir kanalındaki verileri geçerli BitmapData nesnesinin bir kanalına aktarır. | BitmapData | ||
copyPixels(sourceBitmapData:BitmapData, sourceRect:Rectangle, destPoint:Point, alphaBitmapData:BitmapData = null, alphaPoint:Point = null, mergeAlpha:Boolean = false):void
Uzatma, döndürme veya renk efektleri içermeyen görüntüler arasında piksel işleme eylemi gerçekleştirmek için hızlı bir yordam sağlar. | BitmapData | ||
Piksel verisinin dikdörtgen bölgesinden bir bayt dizisini doldurur. | BitmapData | ||
BitmapData nesnesini saklamak için kullanılan bellekte yer açar. | BitmapData | ||
draw(source:IBitmapDrawable, matrix:Matrix = null, colorTransform:flash.geom:ColorTransform = null, blendMode:String = null, clipRect:Rectangle = null, smoothing:Boolean = false):void
Flash çalışma zamanı vektör oluşturucu kullanarak, kaynak görüntüleme nesnesini bitmap görüntüsünün üzerine çizer. | BitmapData | ||
drawWithQuality(source:IBitmapDrawable, matrix:Matrix = null, colorTransform:flash.geom:ColorTransform = null, blendMode:String = null, clipRect:Rectangle = null, smoothing:Boolean = false, quality:String = null):void
Flash çalışma zamanı vektör oluşturucu kullanarak, kaynak görüntüleme nesnesini bitmap görüntüsünün üzerine çizer. | BitmapData | ||
Bu BitmapData nesnesini seçili sıkıştırıcı algoritmasını kullanarak sıkıştırır ve yeni bir ByteArray nesnesini döndürür. | BitmapData | ||
Dikdörtgen bir piksel alanını belirtilen bir ARGB rengi ile doldurur. | BitmapData | ||
Bir koordinattan (x, y) başlayarak görüntü üzerinde blok dolgu işlemi gerçekleştirir ve görüntüyü belirli bir renkle doldurur. | BitmapData | ||
Bir Bitmap nesnesi, kaynak dikdörtgen ve filtre nesnesi ile, applyFilter() yöntemi çağrısının etkilediği hedef dikdörtgeni belirler. | BitmapData | ||
Bitmap görüntüsü içinde, belirtilen bir rengin tüm piksellerini tamamen kapsayan (findColor parametresi true değerine ayarlandıysa) veya belirtilen rengi içermeyen tüm pikselleri tamamen kapsayan (findColor parametresi false değerine ayarlandıysa) dikdörtgen bir bölgeyi belirler. | BitmapData | ||
Belirli bir noktadaki (x, y) BitmapData nesnesinden bir RGB piksel değerini temsil eden bir tam sayıyı döndürür. | BitmapData | ||
Alfa kanalı verilerini ve RGB verilerini içeren ARGB renk değeri döndürür. | BitmapData | ||
Dikdörtgen bir piksel verisi bölgesinden bir bayt dizisi oluşturur. | BitmapData | ||
Dikdörtgen bir piksel verisi bölgesinden bir vektör dizisi oluşturur. | BitmapData | ||
Bir nesnenin belirli bir özelliğinin tanımlı olup olmadığını gösterir. | Object | ||
BitmapData nesnesinin ikilik düzende 256 değerli bir histogramını hesaplar. | BitmapData | ||
hitTest(firstPoint:Point, firstAlphaThreshold:uint, secondObject:Object, secondBitmapDataPoint:Point = null, secondAlphaThreshold:uint = 1):Boolean
Bir bitmap görüntüsü ile nokta, dikdörtgen veya başka bir bitmap görüntüsü arasında piksel düzeyinde vuruş algılaması gerçekleştirir. | BitmapData | ||
Object sınıfının bir örneğinin parametre olarak belirtilen nesnenin prototip zincirinde olup olmadığını gösterir. | Object | ||
BitmapData nesnesine başvuran Bitmap gibi nesnelerin, bu BitmapData nesnesi değiştiğinde güncellenmemesi için bir görüntüyü kilitler. | BitmapData | ||
merge(sourceBitmapData:BitmapData, sourceRect:Rectangle, destPoint:Point, redMultiplier:uint, greenMultiplier:uint, blueMultiplier:uint, alphaMultiplier:uint):void
Kaynak görüntüden hedef görüntüye kanal öncesi karışım yapma işlemini gerçekleştirir. | BitmapData | ||
noise(randomSeed:int, low:uint = 0, high:uint = 255, channelOptions:uint = 7, grayScale:Boolean = false):void
Görüntüyü, rastgele paraziti temsil eden piksellerle doldurur. | BitmapData | ||
paletteMap(sourceBitmapData:BitmapData, sourceRect:Rectangle, destPoint:Point, redArray:Array = null, greenArray:Array = null, blueArray:Array = null, alphaArray:Array = null):void
Her kanal için bir tane olmak üzere dört taneye kadar renk paleti verisi dizisi olan renk kanalı değerlerini yeniden eşler. | BitmapData | ||
perlinNoise(baseX:Number, baseY:Number, numOctaves:uint, randomSeed:int, stitch:Boolean, fractalNoise:Boolean, channelOptions:uint = 7, grayScale:Boolean = false, offsets:Array = null):void
Perlin parazit görüntüsü oluşturur. | BitmapData | ||
pixelDissolve(sourceBitmapData:BitmapData, sourceRect:Rectangle, destPoint:Point, randomSeed:int = 0, numPixels:int = 0, fillColor:uint = 0):int
Kaynak görüntüden hedef görüntüye veya aynı görüntüyü kullanarak piksel erimesi gerçekleştirir. | BitmapData | ||
Belirtilen özelliğin bulunup bulunmadığını ve numaralandırılabilir olup olmadığını gösterir. | Object | ||
Görüntüyü belirli bir (x, y) piksel miktarı kaydırır. | BitmapData | ||
Bir BitmapData nesnesinin tek bir pikselini ayarlar. | BitmapData | ||
BitmapData nesnesinin tek bir pikselinin renk ve alfa saydamlığı değerlerini ayarlar. | BitmapData | ||
Bir bayt dizisini dikdörtgen bir piksel verisi bölgesine dönüştürür. | BitmapData | ||
Dinamik bir özelliğin döngü işlemlerinde kullanılabilirliğini ayarlar. | Object | ||
Bir Vector öğesini dikdörtgen bir piksel verisi bölgesine dönüştürür. | BitmapData | ||
threshold(sourceBitmapData:BitmapData, sourceRect:Rectangle, destPoint:Point, operation:String, threshold:uint, color:uint = 0, mask:uint = 0xFFFFFFFF, copySource:Boolean = false):uint
Bir görüntüdeki piksel değerlerini belirtilen eşiğe karşı test eder ve testi geçen pikselleri yeni renk değerlerine ayarlar. | BitmapData | ||
Bu nesnenin, yerel ayara özel kurallara göre biçimlendirilmiş dize temsilini döndürür. | Object | ||
Belirtilen nesnenin dize olarak temsil edilen halini döndürür. | Object | ||
BitmapData nesnesine başvuran Bitmap gibi nesnelerin, bu BitmapData nesnesi değiştiğinde güncellenmesi için bir görüntünün kilidini kaldırır. | BitmapData | ||
Belirtilen nesnenin temel değerini döndürür. | Object |
height | özellik |
rect | özellik |
rect:Rectangle
[salt okunur] Dil Sürümü: | ActionScript 3.0 |
Çalışma Zamanı Sürümleri: | Flash Player 9, AIR 1.0, Flash Lite 4 |
Bitmap görüntüsünün boyut ve konumunu tanımlayan dikdörtgen. Dikdörtgenin üstü ve solu 0'dır; genişlik ve yükseklik, Bitmap nesnesinin piksel olarak genişlik ve yüksekliğine eşittir.
Uygulama
public function get rect():Rectangle
transparent | özellik |
transparent:Boolean
[salt okunur] Dil Sürümü: | ActionScript 3.0 |
Çalışma Zamanı Sürümleri: | Flash Player 9, AIR 1.0, Flash Lite 4 |
Bitmap görüntüsünün piksel başına saydamlığı destekleyip desteklemediğini tanımlar. Ancak yapıcının transparent
parametresi için true
değerini ileterek bir BitmapData nesnesi yaptığınızda bu değeri ayarlayabilirsiniz. Bir BitmapData nesnesi oluşturduktan sonra, transparent
özelliği değerinin true
olup olmadığını belirleyerek bu nesnenin piksel başına saydamlığı destekleyip desteklemediğini kontrol edebilirsiniz.
Uygulama
public function get transparent():Boolean
width | özellik |
BitmapData | () | Yapıcı |
public function BitmapData(width:int, height:int, transparent:Boolean = true, fillColor:uint = 0xFFFFFFFF)
Dil Sürümü: | ActionScript 3.0 |
Çalışma Zamanı Sürümleri: | Flash Player 9, AIR 1.0, Flash Lite 4 |
Belirtilen genişlik ve yükseklik ile bir BitmapData nesnesi oluşturur. fillColor
parametresi için bir değer belirtirseniz, bitmap'teki her piksel o renge ayarlanır.
Varsayılan olarak, transparent
parametresi için false
değerini iletmediğiniz sürece, bitmap saydam olarak oluşturulur. Bir opak bitmap oluşturduktan sonra, bunu saydam bitmap olarak değiştiremezsiniz. Opak bitmap'teki her piksel yalnızca 24 bit renk kanalı bilgisi kullanır. Bitmap'i saydam olarak tanımlarsanız, her piksel alfa saydamlığı kanalı dahil, 32 bit renk kanalı bilgisi kullanır.
AIR 1.5 ve Flash Player 10'da, bir BitmapData nesnesi için maksimum boyut genişlikte ve yükseklikte 8.191 pikseldir ve toplam piksel sayısı 16.777.215'i geçemez. (Bu nedenle, bir BitmapData nesnesi 8.191 piksel genişliğindeyse en fazla 2.048 piksel yüksekliğinde olabilir.) Flash Player 9 ve önceki sürümleri ile AIR 1.1 ve önceki sürümlerinde, sınırlama yükseklikte 2880 piksel ve genişlikte 2880 pikseldir. 2880'den yüksek bir genişlik veya yükseklik değeri belirtirseniz, yeni bir örnek oluşturulmaz.
Parametrelerwidth:int — Bitmap görüntüsünün piksel olarak genişliği.
| |
height:int — Bitmap görüntüsünün piksel olarak yüksekliği.
| |
transparent:Boolean (default = true ) — Bitmap görüntüsünün piksel başına saydamlığı destekleyip desteklemediğini belirtir. Varsayılan değer true (saydam) şeklindedir. Tamamen saydam bir bitmap oluşturmak için, transparent parametresinin değerini true değerine ve fillColor parametresinin değerini 0x00000000 (veya 0) değerine ayarlayın. transparent özelliğinin false değerine ayarlanması, oluşturma performansında küçük bir artışa neden olabilir.
| |
fillColor:uint (default = 0xFFFFFFFF ) — Bitmap görüntüsü alanını doldurmak için kullandığınız 32 bit ARGB renk değeri. Varsayılan değer 0xFFFFFFFF (düz beyaz) şeklindedir.
|
Atar
ArgumentError — genişlik ve/veya yükseklik maksimum boyutları aşıyor.
|
applyFilter | () | yöntem |
public function applyFilter(sourceBitmapData:BitmapData, sourceRect:Rectangle, destPoint:Point, filter:BitmapFilter):void
Dil Sürümü: | ActionScript 3.0 |
Çalışma Zamanı Sürümleri: | Flash Player 9, AIR 1.0 |
Bir kaynak görüntüyü ve filtre nesnesini alıp filtrelenen görüntüyü oluşturur.
Bu yöntem, bir girdi kaynağı dikdörtgeni tarafından etkilenen hedef dikdörtgeni belirleyen yerleşik filtre nesnelerinin davranışına dayanır.
Bir filtre uygulandıktan sonra, sonuç görüntü girdi görüntüsünden daha büyük olabilir. Örneğin alanın bir (50,50,100,100) kaynak dikdörtgenini ve (10,10) hedef noktasını bulanıklaştırmak için bir BlurFilter sınıfını kullanırsanız, hedef görüntüde değişen alan, bulanıklaştırmadan dolayı (10,10,60,60) değerinden daha büyüktür. Bu, applyFilter()
çağrısı sırasında dahili olarak oluşur.
sourceBitmapData
parametresinin sourceRect
parametresi dahili bir bölgeyse (200 x 200 görüntüde (50,50,100,100) gibi), filtre hedef dikdörtgeni oluşturmak için sourceRect
parametresinin dışındaki kaynak pikselleri kullanır.
BitmapData nesnesi ve sourceBitmapData
parametresi olarak tanımlanan nesne aynı aynıysa, uygulama filtreyi uygulamak için nesnenin geçici bir kopyasını kullanır. En iyi performansı elde etmek için bu durumu önleyin.
Parametreler
sourceBitmapData:BitmapData — Kullanılacak girdi bitmap görüntüsü. Kaynak görüntü farklı bir BitmapData nesnesi olabilir veya geçerli BitmapData örneğini ifade edebilir.
| |
sourceRect:Rectangle — Kaynak görüntünün girdi olarak kullanılacak alanını tanımlayan bir dikdörtgen.
| |
destPoint:Point — Hedef görüntü (geçerli BitmapData örneği) içinde kaynak dikdörtgenin sol üst köşesine karşılık gelen nokta.
| |
filter:BitmapFilter — Filtreleme işlemini gerçekleştirmek için kullandığınız filtre nesnesi. Her filtre türünün aşağıdakiler gibi belirli gereksinimleri vardır:
|
Atar
TypeError — sourceBitmapData, sourceRect, destPoint veya filter değeri null olur.
| |
IllegalOperationError — BitmapData nesnelerinin saydamlığı, filtre işlemiyle uyumlu değildir.
|
İlgili API Öğeleri
flash.filters.BlurFilter
flash.filters.ColorMatrixFilter
flash.filters.ConvolutionFilter
flash.filters.DisplacementMapFilter
flash.filters.DropShadowFilter
flash.filters.GlowFilter
flash.display.DisplayObject.filters
Örnek ( Bu örnek nasıl kullanılır? )
import flash.display.Bitmap; import flash.display.BitmapData; import flash.geom.Point; import flash.geom.Rectangle; import flash.filters.BlurFilter; var bmd:BitmapData = new BitmapData(80, 30, false, 0xFFCC00); var rect:Rectangle = new Rectangle(10, 10, 40, 10); bmd.fillRect(rect, 0xFF0000); var pt:Point = new Point(10, 10); var filter:BlurFilter = new BlurFilter(); bmd.applyFilter(bmd, rect, pt, filter); var bm:Bitmap = new Bitmap(bmd); addChild(bm);
clone | () | yöntem |
public function clone():BitmapData
Dil Sürümü: | ActionScript 3.0 |
Çalışma Zamanı Sürümleri: | Flash Player 9, AIR 1.0, Flash Lite 4 |
İçerilen bitmap'in tam kopyasıyla orijinal örneğin bir klonu olan yeni bir BitmapData nesnesi döndürür.
DöndürürBitmapData — Orijinaliyle aynı yeni bir BitmapData nesnesi.
|
Örnek ( Bu örnek nasıl kullanılır? )
import flash.display.Bitmap; import flash.display.BitmapData; var bmd1:BitmapData = new BitmapData(100, 80, false, 0x00000000); var bmd2:BitmapData = bmd1.clone(); bmd1.setPixel32(1, 1, 0xFFFFFFFF); trace(bmd1.getPixel32(1, 1).toString(16)); // ffffffff trace(bmd2.getPixel32(1, 1).toString(16)); // ff000000 var bm1:Bitmap = new Bitmap(bmd1); this.addChild(bm1); var bm2:Bitmap = new Bitmap(bmd2); bm2.x = 110; this.addChild(bm2);
colorTransform | () | yöntem |
public function colorTransform(rect:Rectangle, colorTransform:flash.geom:ColorTransform):void
Dil Sürümü: | ActionScript 3.0 |
Çalışma Zamanı Sürümleri: | Flash Player 9, AIR 1.0, Flash Lite 4 |
ColorTransform
nesnesi kullanarak bitmap görüntüsünün belirtilen bir alanındaki renk değerlerini ayarlar. Dikdörtgen, bitmap görüntüsünün sınırlarıyla eşleşirse, bu yöntem görüntünün tamamının renk değerlerini dönüştürür.
Parametreler
rect:Rectangle — ColorTransform nesnesinin uygulandığı görüntü alanını tanımlayan bir Rectangle nesnesi.
| |
colorTransform:flash.geom:ColorTransform — Uygulanacak renk dönüştürmesini açıklayan bir ColorTransform nesnesi.
|
Atar
TypeError — rect veya colorTransform değerleri null olur.
|
İlgili API Öğeleri
Örnek ( Bu örnek nasıl kullanılır? )
import flash.display.Bitmap; import flash.display.BitmapData; import flash.geom.Rectangle; import flash.geom.ColorTransform; var bmd:BitmapData = new BitmapData(80, 30, false, 0xFF0000); var cTransform:ColorTransform = new ColorTransform(); cTransform.alphaMultiplier = 0.5 var rect:Rectangle = new Rectangle(0, 0, 40, 30); bmd.colorTransform(rect, cTransform); var bm:Bitmap = new Bitmap(bmd); addChild(bm);
compare | () | yöntem |
public function compare(otherBitmapData:BitmapData):Object
Dil Sürümü: | ActionScript 3.0 |
Çalışma Zamanı Sürümleri: | Flash Player 9, AIR 1.0, Flash Lite 4 |
İki BitmapData nesnesini karşılaştırır. İki BitmapData nesnesinin boyutları (genişlik ve yükseklik) aynıysa, bu yöntem, iki kaynak nesnedeki pikseller arasında her pikselin “fark“ olduğu yeni bir BitmapData nesnesi döndürür:
- İki piksel eşitse, fark pikseli 0x00000000 olur.
- İki pikselin RGB değerleri farklıysa (alfa değeri yok sayılarak), fark pikseli 0xRRGGBB olur; burada RR/GG/BB, kırmızı, yeşil ve mavi kanalları arasındaki fark değerlerinin her biridir (kaynak nesnedeki piksel değeri eksi
otherBitmapData
nesnesindeki piksel değeri). Bu durumda alfa kanalı farkları yok sayılır. - Yalnızca alfa kanalı değeri farklıysa, piksel değeri 0xZZFFFFFF olur; burada ZZ alfa değerlerindeki farktır (kaynak nesnedeki alfa değeri eksi
otherBitmapData
nesnesindeki alfa değeri).
Örneğin şu iki BitmapData nesnesini göz önünde bulundurun:
var bmd1:BitmapData = new BitmapData(50, 50, true, 0xFFFF8800); var bmd2:BitmapData = new BitmapData(50, 50, true, 0xCCCC6600); var diffBmpData:BitmapData = bmd1.compare(bmd2) as BitmapData; trace ("0x" + diffBmpData.getPixel(0,0).toString(16); // 0x332200
Not: İki BitmapData nesnesini doldurmak için kullanılan renklerin RGB değerleri biraz farklıdır (0xFF0000 ve 0xFFAA00). compare()
yönteminin sonucu, her pikseli iki bitmap arasındaki RGB değerlerinin farkını gösteren yeni bir BitmapData nesnesidir.
RGB renklerinin aynı, ancak alfa değerlerinin farklı olduğu şu iki BitmapData nesnesini göz önünde bulundurun:
var bmd1:BitmapData = new BitmapData(50, 50, true, 0xFFFFAA00); var bmd2:BitmapData = new BitmapData(50, 50, true, 0xCCFFAA00); var diffBmpData:BitmapData = bmd1.compare(bmd2) as BitmapData; trace ("0x" + diffBmpData.getPixel32(0,0).toString(16); // 0x33ffffff
compare()
yönteminin sonucu, her pikseli iki bitmap arasındaki RGB değerlerinin farkını gösteren yeni bir BitmapData nesnesidir.
BitmapData nesneleri eşdeğerse (aynı genişlikte ve yükseklikte olup aynı piksel değerlerine sahipse), yöntem 0 sayısını döndürür.
BitmapData nesnelerinin genişlikleri eşit değilse, yöntem -3 sayısını döndürür.
BitmapData nesnelerinin yükseklikleri eşit olmadığı halde genişlikleri aynıysa, yöntem -4 sayısını döndürür.
Şu örnek, farklı genişliklerdeki (50 ve 60) iki Bitmap nesnesini karşılaştırır.
var bmd1:BitmapData = new BitmapData(100, 50, false, 0xFFFF0000); var bmd2:BitmapData = new BitmapData(100, 60, false, 0xFFFFAA00); trace(bmd1.compare(bmd2)); // -4
Parametreler
otherBitmapData:BitmapData — Kaynak BitmapData nesnesiyle karşılaştırılacak BitmapData nesnesi.
|
Object — İki BitmapData nesnesinin boyutları (genişlik ve yükseklik) aynıysa, bu yöntem, iki nesne arasındaki farkı (ele alınan ana konuya bakın) içeren yeni bir BitmapData nesnesi döndürür. BitmapData nesneleri eşdeğerse, yöntem 0 sayısını döndürür. BitmapData nesnelerinin genişlikleri eşit değilse, yöntem -3 sayısını döndürür. BitmapData nesnelerinin yükseklikleri eşit değilse, yöntem -4 sayısını döndürür.
|
Atar
TypeError — Diğer otherBitmapData değeri null olur.
|
Örnek ( Bu örnek nasıl kullanılır? )
import flash.display.Bitmap; import flash.display.BitmapData; var bmd1:BitmapData = new BitmapData(50, 50, true, 0xFFFFAA00); var bmd2:BitmapData = new BitmapData(50, 50, true, 0xCCFFAA00); var diffBmpData:BitmapData = BitmapData(bmd1.compare(bmd2)); var diffValue:String = diffBmpData.getPixel32(1, 1).toString(16); trace (diffValue); // 33ffffff var bm1:Bitmap = new Bitmap(bmd1); addChild(bm1); var bm2:Bitmap = new Bitmap(bmd2); addChild(bm2); bm2.x = 60;
copyChannel | () | yöntem |
public function copyChannel(sourceBitmapData:BitmapData, sourceRect:Rectangle, destPoint:Point, sourceChannel:uint, destChannel:uint):void
Dil Sürümü: | ActionScript 3.0 |
Çalışma Zamanı Sürümleri: | Flash Player 9, AIR 1.0, Flash Lite 4 |
Başka bir BitmapData nesnesinin veya geçerli BitmapData nesnesinin bir kanalındaki verileri geçerli BitmapData nesnesinin bir kanalına aktarır. Hedef BitmapData nesnesindeki diğer kanallarda bulunan verilerin tümü korunur.
Kaynak kanal değeri ve hedef kanal değeri şu değerlerden biri olabilir:
BitmapDataChannel.RED
BitmapDataChannel.GREEN
BitmapDataChannel.BLUE
BitmapDataChannel.ALPHA
Parametreler
sourceBitmapData:BitmapData — Kullanılacak girdi bitmap görüntüsü. Kaynak görüntü farklı bir BitmapData nesnesi olabilir veya geçerli BitmapData nesnesini ifade edebilir.
| |
sourceRect:Rectangle — Kaynak Rectangle nesnesi. Yalnızca bitmap içindeki daha küçük bir alandaki kanal verilerini kopyalamak için, BitmapData nesnesinin genel boyutundan daha küçük olan bir kaynak dikdörtgen belirtin.
| |
destPoint:Point — Yeni kanal verilerinin yerleştirildiği dikdörtgen alanının sol üst köşesini temsil eden hedef Point nesnesi. Yalnızca bir alandaki kanal verilerini hedef görüntüdeki farklı bir alana kopyalamak için, (0,0) dışında bir nokta belirtin.
| |
sourceChannel:uint — Kaynak kanal. BitmapDataChannel sınıfındaki bir değeri kullanın (BitmapDataChannel.RED , BitmapDataChannel.BLUE , BitmapDataChannel.GREEN , BitmapDataChannel.ALPHA ).
| |
destChannel:uint — Hedef kanal. BitmapDataChannel sınıfındaki bir değeri kullanın (BitmapDataChannel.RED , BitmapDataChannel.BLUE , BitmapDataChannel.GREEN , BitmapDataChannel.ALPHA ).
|
Atar
TypeError — sourceBitmapData, sourceRect veya destPoint değerleri null olur.
|
İlgili API Öğeleri
Örnek ( Bu örnek nasıl kullanılır? )
import flash.display.Bitmap; import flash.display.BitmapData; import flash.geom.Rectangle; import flash.geom.Point; var bmd:BitmapData = new BitmapData(100, 80, false, 0x00FF0000); var rect:Rectangle = new Rectangle(0, 0, 20, 20); var pt:Point = new Point(10, 10); bmd.copyChannel(bmd, rect, pt, BitmapDataChannel.RED, BitmapDataChannel.BLUE); var bm:Bitmap = new Bitmap(bmd); this.addChild(bm);
copyPixels | () | yöntem |
public function copyPixels(sourceBitmapData:BitmapData, sourceRect:Rectangle, destPoint:Point, alphaBitmapData:BitmapData = null, alphaPoint:Point = null, mergeAlpha:Boolean = false):void
Dil Sürümü: | ActionScript 3.0 |
Çalışma Zamanı Sürümleri: | Flash Player 9, AIR 1.0, Flash Lite 4 |
Uzatma, döndürme veya renk efektleri içermeyen görüntüler arasında piksel işleme eylemi gerçekleştirmek için hızlı bir yordam sağlar. Bu yöntem, kaynak görüntünün dikdörtgen bir alanını hedef BitmapData nesnesinin hedef noktasındaki aynı boyutta bir dikdörtgen alana kopyalar.
alphaBitmap
ve alphaPoint
parametrelerini dahil ederseniz, kaynak görüntü için alfa kaynağı olarak ikincil bir görüntü kullanabilirsiniz. Kaynak görüntünün alfa verisi varsa, kaynak görüntüdeki pikselleri hedef görüntüyle birleştirmek için her iki alfa verisi kümesi kullanılır. alphaPoint
parametresi, kaynak dikdörtgenin sol üst köşesine karşılık gelen alfa görüntüsündeki noktadır. Kaynak görüntü ile alfa görüntüsünün kesişme alanı dışındaki pikseller, hedef görüntüye kopyalanmaz.
mergeAlpha
özelliği, saydam bir görüntü başka bir saydam görüntüye kopyalanırken alfa kanalının kullanılıp kullanılmamasını denetler. Alfa kanalı verileri içeren pikselleri kopyalamak için mergeAlpha
özelliğini true
değerine ayarlayın. Varsayılan olarak, mergeAlpha
özelliği false
değerindedir.
Parametreler
sourceBitmapData:BitmapData — İçindeki piksellerin kopyalanacağı girdi bitmap görüntüsü. Kaynak görüntü farklı bir BitmapData örneği olabilir veya geçerli BitmapData örneğini ifade edebilir.
| |
sourceRect:Rectangle — Kaynak görüntünün girdi olarak kullanılacak alanını tanımlayan bir dikdörtgen.
| |
destPoint:Point — Yeni piksellerin yerleştirildiği dikdörtgen alanının sol üst köşesini temsil eden hedef nokta.
| |
alphaBitmapData:BitmapData (default = null ) — İkincil bir alfa BitmapData nesnesi kaynağı.
| |
alphaPoint:Point (default = null ) — Alfa BitmapData nesnesi kaynağında, sourceRect parametresinin sol üst köşesine karşılık gelen nokta.
| |
mergeAlpha:Boolean (default = false ) — Alfa kanalını kullanmak için değeri true olarak ayarlayın. Alfa kanalı olmayan pikselleri kopyalamak için, değeri false olarak ayarlayın.
|
Atar
TypeError — sourceBitmapData, sourceRect, destPoint değerleri null olur.
|
Örnek ( Bu örnek nasıl kullanılır? )
import flash.display.Bitmap; import flash.display.BitmapData; import flash.geom.Rectangle; import flash.geom.Point; var bmd1:BitmapData = new BitmapData(40, 40, false, 0x000000FF); var bmd2:BitmapData = new BitmapData(80, 40, false, 0x0000CC44); var rect:Rectangle = new Rectangle(0, 0, 20, 20); var pt:Point = new Point(10, 10); bmd2.copyPixels(bmd1, rect, pt); var bm1:Bitmap = new Bitmap(bmd1); this.addChild(bm1); var bm2:Bitmap = new Bitmap(bmd2); this.addChild(bm2); bm2.x = 50;
copyPixelsToByteArray | () | yöntem |
public function copyPixelsToByteArray(rect:Rectangle, data:ByteArray):void
Dil Sürümü: | ActionScript 3.0 |
Çalışma Zamanı Sürümleri: | Flash Player 11.4, AIR 3.4 |
Piksel verisinin dikdörtgen bölgesinden bir bayt dizisini doldurur. Bu yöntem, ByteArray öğesinin position
dizininden başlayarak, bayt dizisine her piksel için imzalanmamış bir tamsayı (32-bit çarpılmamış piksel değeri) yazar. Gerekirse, tüm piksel verilerini tutmak için bayt dizisinin boyutu gerekli bayt sayısına artırılır.
Parametreler
rect:Rectangle — Geçerli BitmapData nesnesinde dikdörtgen bir alan
| |
data:ByteArray — hedef ByteArray nesnesi
|
Atar
TypeError — rect argümanı null ise veya data argümanı null ise
|
İlgili API Öğeleri
dispose | () | yöntem |
public function dispose():void
Dil Sürümü: | ActionScript 3.0 |
Çalışma Zamanı Sürümleri: | Flash Player 9, AIR 1.0, Flash Lite 4 |
BitmapData nesnesini saklamak için kullanılan bellekte yer açar.
Bir görüntüde dispose()
yöntemi çağrıldığında, görüntünün genişlik ve yüksekliği 0 değerine ayarlanır. Bu BitmapData örneğinin yöntemlerine veya özelliklerine yapılan sonraki çağrıların tümü başarısız olur ve bir istisna atılır.
BitmapData.dispose()
, gerçek bitmap verilerinin kapladığı belleği hemen boşaltır (bir bitmap 64 MB'ye kadar bellek tüketebilir). BitmapData.dispose()
öğesi kullanıldıktan sonra, BitmapData nesnesi artık kullanılamaz ve Flash çalışma zamanı BitmapData nesnesinde işlev çağırırsanız bir istisna atar. Ancak, BitmapData.dispose()
öğesi, BitmapData nesnesinin (yaklaşık 128 bayt) çöpünü toplamaz ; BitmapData nesnesi çöp toplayıcı tarafından toplandığı anda gerçek BitmapData nesnesinin kapladığı alan boşalır.
İlgili API Öğeleri
Örnek ( Bu örnek nasıl kullanılır? )
dispose()
yöntemine bir çağrı yapıldıktan sonra bir BitmapData nesnesi yönteminin çağrılmasının etkisini gösterir (bir istisna atılır).
import flash.display.BitmapData; var myBitmapData:BitmapData = new BitmapData(100, 80, false, 0x000000FF); trace(myBitmapData.getPixel(1, 1)); // 255 == 0xFF myBitmapData.dispose(); try { trace(myBitmapData.getPixel(1, 1)); } catch (error:Error) { trace(error); // ArgumentError }
draw | () | yöntem |
public function draw(source:IBitmapDrawable, matrix:Matrix = null, colorTransform:flash.geom:ColorTransform = null, blendMode:String = null, clipRect:Rectangle = null, smoothing:Boolean = false):void
Dil Sürümü: | ActionScript 3.0 |
Çalışma Zamanı Sürümleri: | Flash Player 9, AIR 1.0, Flash Lite 4 |
Flash çalışma zamanı vektör oluşturucu kullanarak, source
görüntüleme nesnesini bitmap görüntüsünün üzerine çizer. Oluşturmanın nasıl gerçekleştirileceğini denetlemek için matrix
, colorTransform
, blendMode
ve bir hedef clipRect
parametresi belirtebilirsiniz. İsteğe bağlı olarak, bitmap'in ölçeklenirken düzleştirilmesi gerekip gerekmediğini belirtebilirsiniz (bu yalnızca kaynak nesne bir BitmapData nesnesi olduğunda işe yarar).
Not: drawWithQuality()
yöntemi tam olarak draw()
yöntemine benzer şekilde çalışır, ancak vektör oluşturma kalitesini belirlemek için Stage.quality
özelliğini kullanmak yerine, drawWithQuality()
yöntemi için quality
parametresini belirtirsiniz.
Bu yöntem, geliştirme aracı arabirimindeki nesneler için standart vektör oluşturucuyla nesnelerin çizilme şekline doğrudan karşılık gelir.
Kaynak görüntüleme nesnesi, bu çağrı için uygulanmış dönüştürmelerin herhangi birini kullanmaz. Bu, herhangi bir matris dönüştürmesi, renk dönüştürmesi ve karışım modu olmadan kütüphanede veya dosyada bulunduğu şekilde değerlendirilir. Bir görüntüleme nesnesini (örn. bir film klibi) kendi transform özelliklerini kullanarak çizmek için, görüntüleme nesnesinin transform
özelliği nesnesini, BitmapData nesnesini kullanan Bitmap nesnesinin transform
özelliğine kopyalayabilirsiniz.
Bu yöntem, Flash Player 9.0.115.0 ve sonraki sürümleri ile Adobe AIR'da RTMP üzerinden desteklenir. Sunucu tarafındaki bir komut dosyasında Flash Media Server'daki akışlara erişimi denetleyebilirsiniz. Daha fazla bilgi için Adobe Flash Media Server için Sunucu Tarafı ActionScript Dil Başvurusu içindeki Client.audioSampleAccess
ve Client.videoSampleAccess
özelliklerine bakın.
Kaynak nesne ve (bir Sprite veya MovieClip nesnesi olması durumunda) bunun tüm alt nesneleri, çağıranla aynı etki alanından gelmez veya çağıran tarafından Security.allowDomain()
yönteminin çağrılmasıyla erişilebilir olan bir içerikte bulunmaz, draw()
yönteminin çağrılması, bir SecurityError istisnası atar. Bu sınırlama, uygulama sanal alanındaki AIR içeriğine uygulanmaz.
Yüklenen bitmap görüntüsünün source
olarak kullanılmasına ilişkin sınırlamalar da mevcuttur. Yüklenen görüntü çağıranla aynı etki alanından geliyorsa, draw()
yöntemine yapılan çağrı başarılı olur. Ayrıca, görüntünün sunucusunda bulunan etki alanları arası bir ilke dosyası, draw()
yöntemini çağırarak SWF içeriğinin etki alanına izin verebilir. Bu durumda, bir LoaderContext nesnesinin checkPolicyFile
özelliğini ayarlamalı ve bu nesneyi, görüntüyü yüklemek için kullanılan Loader nesnesinin load()
yöntemini çağırırken context
parametresi olarak kullanmalısınız. Bu sınırlamalar, uygulama sanal alanındaki AIR içeriğine uygulanmaz.
Windows'da, draw()
yöntemi Adobe AIR'de bulunan bir HTMLLoader nesnesindeki HTML sayfasında gömülü olan SWF içeriğini yakalayamaz.
draw()
yöntemi Adobe AIR'de PDF içeriğini yakalayamaz. Adobe AIR'de wmode
niteliğinin "window"
olarak ayarlandığı HTML'de gömülü SWF içeriğini de yakalayamaz.
Parametreler
source:IBitmapDrawable — BitmapData nesnesine çizilecek görüntüleme nesnesi veya BitmapData nesnesi. (DisplayObject ve BitmapData sınıfları, IBitmapDrawable arabirimini uygular.)
| |
matrix:Matrix (default = null ) — Bitmap'in koordinatlarını ölçeklemek, döndürmek veya çevirmek için kullanılan bir Matrix nesnesi. Görüntüye bir matris dönüştürme uygulamak istemiyorsanız, bu parametreyi, varsayılan new Matrix() yapıcısıyla oluşturulmuş bir kimlik matrisine ayarlayın veya bir null değeri iletin.
| |
colorTransform:flash.geom:ColorTransform (default = null ) — Bitmap'in renk değerlerini ayarlamak için kullandığınız bir ColorTransform nesnesi. Herhangi bir nesne sağlanmazsa, bitmap görüntüsünün renkleri dönüştürülmez. Bu parametreyi iletmeniz gerekiyorsa ancak görüntüyü dönüştürmek istemiyorsanız, bu parametreyi varsayılan new ColorTransform() yapıcısıyla oluşturulmuş bir ColorTransform nesnesine ayarlayın.
| |
blendMode:String (default = null ) — Sonuç bitmap'e uygulanacak karışım modunu belirten, flash.display.BlendMode sınıfından bir dize değeri.
| |
clipRect:Rectangle (default = null ) — Kaynak nesnenin çizilecek alanını tanımlayan bir Rectangle nesnesi. Bu değeri sağlamazsanız, kırpma gerçekleştirilmez ve kaynak nesnenin tamamı çizilir.
| |
smoothing:Boolean (default = false ) — matrix parametresindeki bir ölçekleme veya döndürme nedeniyle, bir BitmapData nesnesinin ölçeklenirken ya da döndürülürken düzgünleştirilip düzgünleştirilmeyeceğini belirleyen bir Boolean değeri. Ancak source parametresi bir BitmapData nesnesi olduğunda smoothing parametresi geçerlidir. smoothing öğesi false değerine ayarlandığında, döndürülen veya ölçeklenen BitmapData görüntüsü pikselleştirilmiş ya da tırtıklı görüntülenebilir. Örneğin şu iki görüntü source parametresi için aynı BitmapData nesnesini kullanır, ancak smoothing parametresi solda true değerine ve sağda false değerine ayarlıdır:
|
Atar
ArgumentError — source parametresi bir BitmapData veya DisplayObject nesnesi değildir.
| |
SecurityError — source nesne ve (bir Sprite veya MovieClip nesnesi olması durumunda) bunun tüm alt nesneleri, çağıranla aynı etki alanından gelmez veya çağıran tarafından Security.allowDomain() yönteminin çağrılmasıyla erişilebilir olan bir içerikte bulunmaz. Bu sınırlama, uygulama sanal alanındaki AIR içeriğine uygulanmaz.
| |
ArgumentError — Kaynak null değerindedir veya geçerli bir IBitmapDrawable nesnesi değildir.
|
İlgili API Öğeleri
flash.display.Stage.quality
flash.display.StageQuality
flash.display.BlendMode
flash.geom.ColorTransform
flash.geom.Matrix
flash.system.JPEGLoaderContext
Örnek ( Bu örnek nasıl kullanılır? )
import flash.display.Bitmap; import flash.display.BitmapData; import flash.text.TextField; var tf:TextField = new TextField(); tf.text = "bitmap text"; var myBitmapData:BitmapData = new BitmapData(80, 20); myBitmapData.draw(tf); var bmp:Bitmap = new Bitmap(myBitmapData); this.addChild(bmp);
drawWithQuality | () | yöntem |
public function drawWithQuality(source:IBitmapDrawable, matrix:Matrix = null, colorTransform:flash.geom:ColorTransform = null, blendMode:String = null, clipRect:Rectangle = null, smoothing:Boolean = false, quality:String = null):void
Dil Sürümü: | ActionScript 3.0 |
Çalışma Zamanı Sürümleri: | Flash Player 11.3, AIR 3.3 |
Flash çalışma zamanı vektör oluşturucu kullanarak, source
görüntüleme nesnesini bitmap görüntüsünün üzerine çizer. Oluşturmanın nasıl gerçekleştirileceğini denetlemek için matrix
, colorTransform
, blendMode
ve bir hedef clipRect
parametresi belirtebilirsiniz. İsteğe bağlı olarak, bitmap'in ölçeklenirken düzleştirilmesi gerekip gerekmediğini belirtebilirsiniz (bu yalnızca kaynak nesne bir BitmapData nesnesi olduğunda işe yarar).
Not: drawWithQuality()
yöntemi tam olarak draw()
yöntemine benzer şekilde çalışır, ancak vektör oluşturma kalitesini belirlemek için Stage.quality
özelliğini kullanmak yerine, drawWithQuality()
yöntemi için quality
parametresini belirtirsiniz.
Bu yöntem, geliştirme aracı arabirimindeki nesneler için standart vektör oluşturucuyla nesnelerin çizilme şekline doğrudan karşılık gelir.
Kaynak görüntüleme nesnesi, bu çağrı için uygulanmış dönüştürmelerin herhangi birini kullanmaz. Bu, herhangi bir matris dönüştürmesi, renk dönüştürmesi ve karışım modu olmadan kütüphanede veya dosyada bulunduğu şekilde değerlendirilir. Bir görüntüleme nesnesini (örn. bir film klibi) kendi transform özelliklerini kullanarak çizmek için, görüntüleme nesnesinin transform
özelliği nesnesini, BitmapData nesnesini kullanan Bitmap nesnesinin transform
özelliğine kopyalayabilirsiniz.
Bu yöntem, Flash Player 9.0.115.0 ve sonraki sürümleri ile Adobe AIR'da RTMP üzerinden desteklenir. Sunucu tarafındaki bir komut dosyasında Flash Media Server'daki akışlara erişimi denetleyebilirsiniz. Daha fazla bilgi için Adobe Flash Media Server için Sunucu Tarafı ActionScript Dil Başvurusu içindeki Client.audioSampleAccess
ve Client.videoSampleAccess
özelliklerine bakın.
Kaynak nesne ve (bir Sprite veya MovieClip nesnesi olması durumunda) bunun tüm alt nesneleri, çağıranla aynı etki alanından gelmezse ya da çağıran tarafından Security.allowDomain()
yönteminin çağrılmasıyla erişilebilir olan bir içerikte bulunmazsa, drawWithQuality()
yönteminin çağrılması, bir SecurityError istisnası atar. Bu sınırlama, uygulama sanal alanındaki AIR içeriğine uygulanmaz.
Yüklenen bitmap görüntüsünün source
olarak kullanılmasına ilişkin sınırlamalar da mevcuttur. Yüklenen görüntü çağıranla aynı etki alanından geliyorsa, drawWithQuality()
yöntemine yapılan çağrı başarılı olur. Ayrıca, görüntünün sunucusunda bulunan etki alanları arası bir ilke dosyası, drawWithQuality()
yöntemini çağırarak SWF içeriğinin etki alanına izin verebilir. Bu durumda, bir LoaderContext nesnesinin checkPolicyFile
özelliğini ayarlamalı ve bu nesneyi, görüntüyü yüklemek için kullanılan Loader nesnesinin load()
yöntemini çağırırken context
parametresi olarak kullanmalısınız. Bu sınırlamalar, uygulama sanal alanındaki AIR içeriğine uygulanmaz.
Windows'ta, drawWithQuality()
yöntemi Adobe AIR'de bulunan bir HTMLLoader nesnesindeki HTML sayfasına gömülü olan SWF içeriğini yakalayamaz.
drawWithQuality()
yöntemi Adobe AIR'de PDF içeriğini yakalayamaz. Adobe AIR'de wmode
niteliğinin "window"
olarak ayarlandığı HTML'de gömülü SWF içeriğini de yakalayamaz.
Parametreler
source:IBitmapDrawable — BitmapData nesnesine çizilecek görüntüleme nesnesi veya BitmapData nesnesi. (DisplayObject ve BitmapData sınıfları, IBitmapDrawable arabirimini uygular.)
| |
matrix:Matrix (default = null ) — Bitmap'in koordinatlarını ölçeklemek, döndürmek veya çevirmek için kullanılan bir Matrix nesnesi. Görüntüye bir matris dönüştürme uygulamak istemiyorsanız, bu parametreyi, varsayılan new Matrix() yapıcısıyla oluşturulmuş bir kimlik matrisine ayarlayın veya bir null değeri iletin.
| |
colorTransform:flash.geom:ColorTransform (default = null ) — Bitmap'in renk değerlerini ayarlamak için kullandığınız bir ColorTransform nesnesi. Herhangi bir nesne sağlanmazsa, bitmap görüntüsünün renkleri dönüştürülmez. Bu parametreyi iletmeniz gerekiyorsa ancak görüntüyü dönüştürmek istemiyorsanız, bu parametreyi varsayılan new ColorTransform() yapıcısıyla oluşturulmuş bir ColorTransform nesnesine ayarlayın.
| |
blendMode:String (default = null ) — Sonuç bitmap'e uygulanacak karışım modunu belirten, flash.display.BlendMode sınıfından bir dize değeri.
| |
clipRect:Rectangle (default = null ) — Kaynak nesnenin çizilecek alanını tanımlayan bir Rectangle nesnesi. Bu değeri sağlamazsanız, kırpma gerçekleştirilmez ve kaynak nesnenin tamamı çizilir.
| |
smoothing:Boolean (default = false ) — matrix parametresindeki bir ölçekleme veya döndürme nedeniyle, bir BitmapData nesnesinin ölçeklenirken ya da döndürülürken düzgünleştirilip düzgünleştirilmeyeceğini belirleyen bir Boolean değeri. Ancak source parametresi bir BitmapData nesnesi olduğunda smoothing parametresi geçerlidir. smoothing öğesi false değerine ayarlandığında, döndürülen veya ölçeklenen BitmapData görüntüsü pikselleştirilmiş ya da tırtıklı görüntülenebilir. Örneğin şu iki görüntü source parametresi için aynı BitmapData nesnesini kullanır, ancak smoothing parametresi solda true değerine ve sağda false değerine ayarlıdır:
| |
quality:String (default = null ) — StageQuality değerlerinden herhangi biridir. Vektör grafikleri çizilirken kullanılacak kenar yumuşatma kalitesini seçer.
|
Atar
ArgumentError — source parametresi bir BitmapData veya DisplayObject nesnesi değildir.
| |
SecurityError — source nesne ve (bir Sprite veya MovieClip nesnesi olması durumunda) bunun tüm alt nesneleri, çağıranla aynı etki alanından gelmez veya çağıran tarafından Security.allowDomain() yönteminin çağrılmasıyla erişilebilir olan bir içerikte bulunmaz. Bu sınırlama, uygulama sanal alanındaki AIR içeriğine uygulanmaz.
| |
ArgumentError — Kaynak null değerindedir veya geçerli bir IBitmapDrawable nesnesi değildir.
|
İlgili API Öğeleri
flash.display.StageQuality
flash.display.BlendMode
flash.geom.ColorTransform
flash.geom.Matrix
flash.system.JPEGLoaderContext
Örnek ( Bu örnek nasıl kullanılır? )
import flash.display.Bitmap; import flash.display.BitmapData; import flash.text.TextField; var tf:TextField = new TextField(); tf.text = "bitmap text"; var myBitmapData:BitmapData = new BitmapData(80, 20); myBitmapData.drawWithQuality(tf, , , , , , StageQuality.LOW); var bmp:Bitmap = new Bitmap(myBitmapData); this.addChild(bmp);
encode | () | yöntem |
public function encode(rect:Rectangle, compressor:Object, byteArray:ByteArray = null):ByteArray
Dil Sürümü: | ActionScript 3.0 |
Çalışma Zamanı Sürümleri: | Flash Player 11.3, AIR 3.3 |
Bu BitmapData nesnesini seçili sıkıştırıcı algoritmasını kullanarak sıkıştırır ve yeni bir ByteArray nesnesini döndürür. İsteğe bağlı olarak, belirtilen ByteArray'e sonuç verilerini yazar. Compressor
argümanı kodlanan algoritmayı belirtir ve PNGEncoderOptions, JPEGEncoderOptions veya JPEGXREncoderOptions olabilir.
Aşağıdaki örnek bir BitmapData nesnesini JPEGEncoderOptions kullanarak sıkıştırır:
// Compress a BitmapData object as a JPEG file. var bitmapData:BitmapData = new BitmapData(640,480,false,0x00FF00); var byteArray:ByteArray = new ByteArray(); bitmapData.encode(new Rectangle(0,0,640,480), new flash.display.JPEGEncoderOptions(), byteArray);
Parametreler
rect:Rectangle — BitmapData nesnesinin sıkıştırılacak alanı.
| |
compressor:Object — Kullanılacak sıkıştırıcı türü. Geçerli değerler şunlardır: flash.display.PNGEncoderOptions , flash.display.JPEGEncoderOptions ve flash.display.JPEGXREncoderOptions .
| |
byteArray:ByteArray (default = null ) — Kodlanmış görüntüyü tutmak için çıktı ByteArray'i.
|
ByteArray — Kodlanmış görüntüyü içeren bir ByteArray.
|
İlgili API Öğeleri
fillRect | () | yöntem |
public function fillRect(rect:Rectangle, color:uint):void
Dil Sürümü: | ActionScript 3.0 |
Çalışma Zamanı Sürümleri: | Flash Player 9, AIR 1.0, Flash Lite 4 |
Dikdörtgen bir piksel alanını belirtilen bir ARGB rengi ile doldurur.
Parametreler
rect:Rectangle — Doldurulacak dikdörtgen alan.
| |
color:uint — Alanı dolduran ARGB renk değeri. ARGB renkleri genellikle onaltılık biçimde (örn. 0xFF336699) belirtilir.
|
Atar
TypeError — rect öğesi null değerindedir.
|
İlgili API Öğeleri
Örnek ( Bu örnek nasıl kullanılır? )
import flash.display.Bitmap; import flash.display.BitmapData; import flash.geom.Rectangle; var myBitmapData:BitmapData = new BitmapData(40, 40, false, 0x0000FF00); var rect:Rectangle = new Rectangle(0, 0, 20, 20); myBitmapData.fillRect(rect, 0x0000FF); var bm:Bitmap = new Bitmap(myBitmapData); addChild(bm);
floodFill | () | yöntem |
public function floodFill(x:int, y:int, color:uint):void
Dil Sürümü: | ActionScript 3.0 |
Çalışma Zamanı Sürümleri: | Flash Player 9, AIR 1.0, Flash Lite 4 |
Bir koordinattan (x, y) başlayarak görüntü üzerinde blok dolgu işlemi gerçekleştirir ve görüntüyü belirli bir renkle doldurur. floodFill()
yöntemi, çeşitli paint programlarındaki renkle doldurma aracına benzer. Bu renk, alfa bilgilerini ve renk bilgilerini içeren bir ARGB rengidir.
Parametreler
x:int — Görüntünün x koordinatı.
| |
y:int — Görüntünün y koordinatı.
| |
color:uint — Dolgu olarak kullanılacak ARGB rengi.
|
Örnek ( Bu örnek nasıl kullanılır? )
(10, 10)
noktasındaki renkle eşleştiği, o nokta tarafından tanımlanan pikseli çevreleyen bir BitmapData nesnesi bölgesinin nasıl kırmızı ile doldurulacağını gösterir.
import flash.display.Bitmap; import flash.display.BitmapData; import flash.geom.Rectangle; var myBitmapData:BitmapData = new BitmapData(40, 40, false, 0x0000FF00); var rect:Rectangle = new Rectangle(0, 0, 20, 20); myBitmapData.fillRect(rect, 0x000000FF); rect = new Rectangle(15, 15, 25, 25); myBitmapData.fillRect(rect, 0x000000FF); myBitmapData.floodFill(10, 10, 0x00FF0000); var bm:Bitmap = new Bitmap(myBitmapData); addChild(bm);
generateFilterRect | () | yöntem |
public function generateFilterRect(sourceRect:Rectangle, filter:BitmapFilter):Rectangle
Dil Sürümü: | ActionScript 3.0 |
Çalışma Zamanı Sürümleri: | Flash Player 9, AIR 1.0 |
Bir Bitmap nesnesi, kaynak dikdörtgen ve filtre nesnesi ile, applyFilter()
yöntemi çağrısının etkilediği hedef dikdörtgeni belirler.
Örneğin bir bulanıklaştırma filtresi normalde orijinal görüntünün boyutundan daha büyük bir alanı etkiler. Varsayılan bir BlurFilter örneğiyle filtrelenmekte olan 100 x 200 piksel bir görüntü; burada blurX = blurY = 4
bir hedef dikdörtgen (-2,-2,104,204)
oluşturur. generateFilterRect()
yöntemi, bir filtre işlemi gerçekleştirmeden önce hedef görüntüyü uygun şekilde boyutlandırmanız için bu hedef dikdörtgenin boyutunu önceden bulmanızı sağlar.
Bazı filtreler, kaynak görüntü boyutunu esas alarak hedef dikdörtgenlerini kırpar. Örneğin bir iç DropShadow
, kaynak görüntüsünden daha büyük bir sonuç oluşturmaz. Bu API'de, BitmapData nesnesi kaynak rect
parametresi olarak değil, kaynak sınırları olarak kullanılır.
Parametreler
sourceRect:Rectangle — Kaynak görüntünün girdi olarak kullanılacak alanını tanımlayan bir dikdörtgen.
| |
filter:BitmapFilter — Hedef dikdörtgeni hesaplamak için kullandığınız bir filtre nesnesi.
|
Rectangle — Bir görüntü, sourceRect parametresi ve filtre kullanılarak hesaplanan hedef dikdörtgen.
|
Atar
TypeError — sourceRect veya filter null değerindedir.
|
Örnek ( Bu örnek nasıl kullanılır? )
generateFilterRect()
yöntemini nasıl kullanacağınızı gösterir. generateFilterRect()
yönteminin sonuçları, trace()
işlevi tarafından verilir:
import flash.display.Bitmap; import flash.display.BitmapData; import flash.geom.Point; import flash.geom.Rectangle; import flash.filters.BlurFilter; var bmd:BitmapData = new BitmapData(80, 30, false, 0xFFCC00); var rect:Rectangle = new Rectangle(10, 10, 40, 10); bmd.fillRect(rect, 0xFF0000); var pt:Point = new Point(10, 10); var filter:BlurFilter = new BlurFilter(); trace(bmd.generateFilterRect(rect, filter)); // (x=8, y=8, w=44, h=14) bmd.applyFilter(bmd, rect, pt, filter); var bm:Bitmap = new Bitmap(bmd); addChild(bm);
generateFilterRect()
yönteminin filtre uygulamadığını unutmayın. Filtre uygulamak için applyFilter()
yöntemini çağırın.
getColorBoundsRect | () | yöntem |
public function getColorBoundsRect(mask:uint, color:uint, findColor:Boolean = true):Rectangle
Dil Sürümü: | ActionScript 3.0 |
Çalışma Zamanı Sürümleri: | Flash Player 9, AIR 1.0, Flash Lite 4 |
Bitmap görüntüsü içinde, belirtilen bir rengin tüm piksellerini tamamen kapsayan (findColor
parametresi true
değerine ayarlandıysa) veya belirtilen rengi içermeyen tüm pikselleri tamamen kapsayan (findColor
parametresi false
değerine ayarlandıysa) dikdörtgen bir bölgeyi belirler.
Örneğin bir kaynak görüntünüz varsa ve sıfır olmayan bir alfa kanalını içeren görüntü dikdörtgenini belirlemek isterseniz, parametre olarak {mask: 0xFF000000, color: 0x00000000}
iletin. findColor
parametresi true
değerine ayarlanırsa, görüntünün tamamında (value & mask) == color
(burada value
, pikselin renk değeridir) olan piksellerin sınırları aranır. findColor
parametresi false
değerine ayarlanırsa, görüntünün tamamında (value & mask) != color
(burada value
, pikselin renk değeridir) olan piksellerin sınırları aranır. Bir görüntünün etrafındaki beyaz boşluğu belirlemek için, beyaz olmayan piksellerin sınırlarını bulmak üzere {mask: 0xFFFFFFFF, color: 0xFFFFFFFF}
iletin.
Parametreler
mask:uint — Göz önünde bulundurulacak ARGB rengi bit'lerini belirten onaltılık bir değer. & (bitsel AND) operatörü kullanılarak renk değeri bu onaltılık değerle birleştirilir.
| |
color:uint — Eşleşecek (findColor öğesi true değerine ayarlıysa) veya eşleşmeyecek (findColor öğesi false değerine ayarlıysa) ARGB rengini belirten onaltılık bir değer.
| |
findColor:Boolean (default = true ) — Değer true değerine ayarlanırsa, bir resimdeki renk değerinin sınırlarını döndürür. Değer false değerine ayarlanırsa, bir resimde bu rengin bulunmadığı alanın sınırlarını döndürür.
|
Rectangle — Görüntünün belirtilen renkteki bölgesi.
|
Örnek ( Bu örnek nasıl kullanılır? )
getColorBoundsRect()
yöntemini çağırır ve piksellerin kırmızı olmadığı (findColor
parametresi false
değerine ayarlanarak) dikdörtgeni belirlemek için de tekrar aynı yöntemi çağırır:
import flash.display.Bitmap; import flash.display.BitmapData; import flash.geom.Rectangle; var bmd:BitmapData = new BitmapData(80, 40, false, 0xFFFFFF); var rect:Rectangle = new Rectangle(0, 0, 80, 20); bmd.fillRect(rect, 0xFF0000); var maskColor:uint = 0xFFFFFF; var color:uint = 0xFF0000; var redBounds:Rectangle = bmd.getColorBoundsRect(maskColor, color, true); trace(redBounds); // (x=0, y=0, w=80, h=20) var notRedBounds:Rectangle = bmd.getColorBoundsRect(maskColor, color, false); trace(notRedBounds); // (x=0, y=20, w=80, h=20) var bm:Bitmap = new Bitmap(bmd); addChild(bm);
getPixel | () | yöntem |
public function getPixel(x:int, y:int):uint
Dil Sürümü: | ActionScript 3.0 |
Çalışma Zamanı Sürümleri: | Flash Player 9, AIR 1.0, Flash Lite 4 |
Belirli bir noktadaki (x, y) BitmapData nesnesinden bir RGB piksel değerini temsil eden bir tam sayıyı döndürür. getPixel()
yöntemi, çarpılmamış bir piksel değeri döndürür. Alfa bilgisi döndürülmez.
Bir BitmapData nesnesindeki tüm pikseller, önceden çarpılmış renk değerleri olarak saklanır. Önceden çarpılmış görüntü pikseli, zaten alfa verileriyle çarpılmış kırmızı, yeşil ve mavi renk kanalı değerlerine sahiptir. Örneğin alfa değeri 0 ise, çarpılmamış değerlerinden bağımsız olarak RGB kanallarının değerleri de 0 olur. Bu veri kaybı, işlemleri gerçekleştirirken bazı sorunlar yaşamanıza neden olabilir. Tüm BitmapData yöntemleri, çarpılmamış değerleri alır ve döndürür. Dahili piksel temsili, bir değer olarak döndürülmeden önce, önceden çarpılmış durumdan çarpılmamış duruma dönüştürülür. Ayarlama işlemi sırasında, ham görüntü pikseli ayarlanmadan önce piksel değeri önceden çarpılır.
Parametreler
x:int — Pikselin x konumu.
| |
y:int — Pikselin y konumu.
|
uint — RGB piksel değerini temsil eden bir sayı. (x, y) koordinatları görüntünün sınırları dışındaysa, yöntem 0 döndürür.
|
İlgili API Öğeleri
Örnek ( Bu örnek nasıl kullanılır? )
getPixel()
yöntemini kullanır:
import flash.display.BitmapData; var bmd:BitmapData = new BitmapData(80, 40, false, 0xFF0000); var pixelValue:uint = bmd.getPixel(0, 0); trace(pixelValue.toString(16)); // ff0000;
getPixel32 | () | yöntem |
public function getPixel32(x:int, y:int):uint
Dil Sürümü: | ActionScript 3.0 |
Çalışma Zamanı Sürümleri: | Flash Player 9, AIR 1.0, Flash Lite 4 |
Alfa kanalı verilerini ve RGB verilerini içeren ARGB renk değeri döndürür. Bu yöntem, alfa kanalı verileri olmadan bir RGB rengi döndürengetPixel()
yöntemine benzer.
Bir BitmapData nesnesindeki tüm pikseller, önceden çarpılmış renk değerleri olarak saklanır. Önceden çarpılmış görüntü pikseli, zaten alfa verileriyle çarpılmış kırmızı, yeşil ve mavi renk kanalı değerlerine sahiptir. Örneğin alfa değeri 0 ise, çarpılmamış değerlerinden bağımsız olarak RGB kanallarının değerleri de 0 olur. Bu veri kaybı, işlemleri gerçekleştirirken bazı sorunlar yaşamanıza neden olabilir. Tüm BitmapData yöntemleri, çarpılmamış değerleri alır ve döndürür. Dahili piksel temsili, bir değer olarak döndürülmeden önce, önceden çarpılmış durumdan çarpılmamış duruma dönüştürülür. Ayarlama işlemi sırasında, ham görüntü pikseli ayarlanmadan önce piksel değeri önceden çarpılır.
Parametreler
x:int — Pikselin x konumu.
| |
y:int — Pikselin y konumu.
|
uint — ARGB piksel değerini temsil eden bir sayı. (x, y) koordinatları görüntünün sınırları dışındaysa, 0 döndürülür.
|
İlgili API Öğeleri
Örnek ( Bu örnek nasıl kullanılır? )
getPixel32()
yöntemini kullanır ve her renk bileşeni (alfa, kırmızı, yeşil ve mavi) için onaltılık değerleri belirler.
import flash.display.BitmapData; var bmd:BitmapData = new BitmapData(80, 40, true, 0xFF44AACC); var pixelValue:uint = bmd.getPixel32(0, 0); var alphaValue:uint = pixelValue >> 24 & 0xFF; var red:uint = pixelValue >> 16 & 0xFF; var green:uint = pixelValue >> 8 & 0xFF; var blue:uint = pixelValue & 0xFF; trace(alphaValue.toString(16)); // ff trace(red.toString(16)); // 44 trace(green.toString(16)); // aa trace(blue.toString(16)); // cc
getPixels | () | yöntem |
public function getPixels(rect:Rectangle):ByteArray
Dil Sürümü: | ActionScript 3.0 |
Çalışma Zamanı Sürümleri: | Flash Player 9, AIR 1.0, Flash Lite 4 |
Dikdörtgen bir piksel verisi bölgesinden bir bayt dizisi oluşturur. Bayt dizisine her piksel için işaretsiz bir tam sayı (32 bit çarpılmamış bir piksel değeri) yazar.
Parametreler
rect:Rectangle — Geçerli BitmapData nesnesinde dikdörtgen bir alan.
|
ByteArray — Herhangi bir Rectangle içindeki pikselleri temsil eden ByteArray.
|
Atar
TypeError — rect öğesi null değerindedir.
|
İlgili API Öğeleri
Örnek ( Bu örnek nasıl kullanılır? )
getPixels()
yöntemini kullanır.
import flash.display.BitmapData; import flash.geom.Rectangle; import flash.utils.ByteArray; var bmd:BitmapData = new BitmapData(80, 40, true); var seed:int = int(Math.random() * int.MAX_VALUE); bmd.noise(seed); var bounds:Rectangle = new Rectangle(0, 0, bmd.width, bmd.height); var pixels:ByteArray = bmd.getPixels(bounds);
getVector | () | yöntem |
public function getVector(rect:Rectangle):Vector.<uint>
Dil Sürümü: | ActionScript 3.0 |
Çalışma Zamanı Sürümleri: | Flash Player 10, AIR 1.5, Flash Lite 4 |
Dikdörtgen bir piksel verisi bölgesinden bir vektör dizisi oluşturur. Belirtilen dikdörtgen için, işaretsiz tam sayıların (32-bit çarpılmamış piksel değeri) bir Vector nesnesini döndürür.
Parametreler
rect:Rectangle — Geçerli BitmapData nesnesinde dikdörtgen bir alan.
|
Vector.<uint> — Belirli bir Rectangle nesnesini temsil eden bir Vector.
|
Atar
TypeError — rect öğesi null değerindedir.
|
histogram | () | yöntem |
public function histogram(hRect:Rectangle = null):Vector.<Vector.<Number>>
Dil Sürümü: | ActionScript 3.0 |
Çalışma Zamanı Sürümleri: | Flash Player 10, AIR 1.5, Flash Lite 4 |
BitmapData nesnesinin ikilik düzende 256 değerli bir histogramını hesaplar. Bu yöntem, dört Vector içeren bir Vector nesnesi döndürür.<Number> örnekleri (Number nesneleri içeren dört Vector nesnesi). Sırayla kırmızı, yeşil, mavi ve alfa bileşenlerini temsil eden dört Vector örneği. Her Vector, 0 ile 255 arasında tek bir bileşen değerinin popülasyon sayısını temsil eden 256 değer içerir.
Parametreler
hRect:Rectangle (default = null ) — BitmapData nesnesinin kullanılacak alanı.
|
Vector.<Vector.<Number>> |
hitTest | () | yöntem |
public function hitTest(firstPoint:Point, firstAlphaThreshold:uint, secondObject:Object, secondBitmapDataPoint:Point = null, secondAlphaThreshold:uint = 1):Boolean
Dil Sürümü: | ActionScript 3.0 |
Çalışma Zamanı Sürümleri: | Flash Player 9, AIR 1.0, Flash Lite 4 |
Bir bitmap görüntüsü ile nokta, dikdörtgen veya başka bir bitmap görüntüsü arasında piksel düzeyinde vuruş algılaması gerçekleştirir. Vuruş, bir noktanın örtüşmesi veya opak bir piksel üzerindeki bir dikdörtgen veya iki tane örtüşen opak piksel olarak tanımlanır. Vuruş testi gerçekleştirildiğinde iki nesnenin de uzatma, döndürme veya başka bir dönüştürmesi göz önünde bulundurulmaz.
Bir görüntü opak ise, bu yöntem için tamamen opak bir dikdörtgen olarak değerlendirilir. Her iki görüntünün, saydamlığı göz önünde bulunduran piksel düzeyinde vuruş testi gerçekleştirmesi için saydam görüntüler olması gerekir. İki saydam görüntü test edilirken, alpha threshold parametreleri 0 - 255 arasında hangi alfa kanalı değerlerinin opak olarak değerlendirileceğini denetler.
Parametreler
firstPoint:Point — Rastgele bir koordinat alanındaki BitmapData görüntüsünün sol üst köşesinin konumu. Aynı koordinat alanı, secondBitmapPoint parametresinin tanımlanmasında da kullanılır.
| |
firstAlphaThreshold:uint — Bu vuruş testi için opak olarak değerlendirilen en küçük alfa kanalı değeri.
| |
secondObject:Object — Bir Rectangle, Point, Bitmap veya BitmapData nesnesi.
| |
secondBitmapDataPoint:Point (default = null ) — İkinci BitmapData nesnesinde bir piksel konumunu tanımlayan nokta. Yalnızca secondObject değeri bir BitmapData nesnesi olduğunda bu parametreyi kullanın.
| |
secondAlphaThreshold:uint (default = 1 ) — İkinci BitmapData nesnesinde opak olarak değerlendirilen en küçük alfa kanalı değeri. Yalnızca secondObject değeri bir BitmapData nesnesi olduğunda her iki BitmapData nesnesi de saydam olduğunda bu parametreyi kullanın.
|
Boolean — Vuruş gerçekleşirse true değeri; gerçekleşmezsefalse değeri.
|
Atar
ArgumentError — secondObject parametresi bir Point, Rectangle, Bitmap veya BitmapData nesnesi değildir.
| |
TypeError — firstPoint null değerindedir.
|
Örnek ( Bu örnek nasıl kullanılır? )
secondObject
olarak bir Point nesnesi içeren hitTest()
yöntemini çağırır. Point nesnesi birinci çağrıda BitmapData nesnesinin opak olmayan sol üst köşesini tanımlar ve ikinci çağrıda da BitmapData nesnesinin opak olan merkezini tanımlar.
import flash.display.BitmapData; import flash.geom.Rectangle; import flash.geom.Point; var bmd1:BitmapData = new BitmapData(80, 80, true, 0x00000000); var rect:Rectangle = new Rectangle(20, 20, 40, 40); bmd1.fillRect(rect, 0xFF0000FF); var pt1:Point = new Point(1, 1); trace(bmd1.hitTest(pt1, 0xFF, pt1)); // false var pt2:Point = new Point(40, 40); trace(bmd1.hitTest(pt1, 0xFF, pt2)); // true
lock | () | yöntem |
public function lock():void
Dil Sürümü: | ActionScript 3.0 |
Çalışma Zamanı Sürümleri: | Flash Player 9, AIR 1.0 |
BitmapData nesnesine başvuran Bitmap gibi nesnelerin, bu BitmapData nesnesi değiştiğinde güncellenmemesi için bir görüntüyü kilitler. Performansı artırmak için, setPixel()
veya setPixel32()
yöntemine birçok çağrı yapmadan önce veya yaptıktan sonra unlock()
yöntemiyle birlikte bu yöntemi kullanın.
İlgili API Öğeleri
Örnek ( Bu örnek nasıl kullanılır? )
bitmapData
özelliğini esas alarak bir BitmapData nesnesi (picture
) oluşturur. Daha sonra, karmaşık bir özel işlev olan ve BitmapData nesnesini değiştiren bir complexTransformation()
öğesi çağırmadan önce lock()
yöntemini çağırır. (Bu örnekte picture
nesnesi ve complexTransformation()
işlevi tanımlanmaktadır.) complexTransformation()
işlevi, picture
nesnesinin bitmapData
özelliğini güncellese de, kod bitmapData
nesnesinde unlock()
yöntemini çağırıncaya kadar değişiklikler yansıtılmaz.
import flash.display.BitmapData; var bitmapData:BitmapData = picture.bitmapData; bitmapData.lock(); bitmapData = complexTransformation(bitmapData); bitmapData.unlock(); picture.bitmapData = bitmapData;
merge | () | yöntem |
public function merge(sourceBitmapData:BitmapData, sourceRect:Rectangle, destPoint:Point, redMultiplier:uint, greenMultiplier:uint, blueMultiplier:uint, alphaMultiplier:uint):void
Dil Sürümü: | ActionScript 3.0 |
Çalışma Zamanı Sürümleri: | Flash Player 9, AIR 1.0, Flash Lite 4 |
Kaynak görüntüden hedef görüntüye kanal öncesi karışım yapma işlemini gerçekleştirir. Kaynak ve hedef piksellerin kanal değerleri esas alınarak her kanal ve her piksel için yeni bir değer hesaplanır. Örneğin, kırmızı kanalda yeni bir değer şu şekilde hesaplanır (burada redSrc
, kaynak görüntüdeki bir pikselin kırmızı kanal değeri ve redDest
ise hedef görüntüde karşılık gelen pikseldeki kırmızı kanal değeridir):
new redDest = [(redSrc * redMultiplier) + (redDest * (256 - redMultiplier))] / 256;
redMultiplier
, greenMultiplier
, blueMultiplier
ve alphaMultiplier
değerleri, renk kanalının her biri için kullanılan çarpanlardır. 0
ile 0x100
(256) arasında bir onaltılık değer kullanın; burada 0
, hedefteki tam değerin sonuçta kullanıldığını belirtir, 0x100
kaynaktaki tam değerin kullanıldığını belirtir ve aradaki sayılar da bir karışımın (örn. % 50 için 0x80
) kullanıldığını belirtir.
Parametreler
sourceBitmapData:BitmapData — Kullanılacak girdi bitmap görüntüsü. Kaynak görüntü farklı bir BitmapData nesnesi olabilir veya geçerli BitmapData nesnesini ifade edebilir.
| |
sourceRect:Rectangle — Kaynak görüntünün girdi olarak kullanılacak alanını tanımlayan bir dikdörtgen.
| |
destPoint:Point — Hedef görüntü (geçerli BitmapData örneği) içinde kaynak dikdörtgenin sol üst köşesine karşılık gelen nokta.
| |
redMultiplier:uint — Kırmızı kanal değeriyle çarpılacak onaltılık uint değeri.
| |
greenMultiplier:uint — Yeşil kanal değeriyle çarpılacak onaltılık uint değeri.
| |
blueMultiplier:uint — Mavi kanal değeriyle çarpılacak onaltılık uint değeri.
| |
alphaMultiplier:uint — Alfa saydamlığı değeriyle çarpılacak onaltılık uint değeri.
|
Atar
TypeError — sourceBitmapData, sourceRect veya destPoint değerleri null olur.
|
Örnek ( Bu örnek nasıl kullanılır? )
merge()
yöntemini çağırarak belirtilen bir dikdörtgen alanda ikinci BitmapData piksellerini birinci BitmapData nesnesiyle birleştirir:
import flash.display.Bitmap; import flash.display.BitmapData; import flash.geom.Rectangle; import flash.geom.Point; var bmd1:BitmapData = new BitmapData(100, 80, true, 0xFF00FF00); var bmd2:BitmapData = new BitmapData(100, 80, true, 0xFFFF0000); var rect:Rectangle = new Rectangle(0, 0, 20, 20); var pt:Point = new Point(20, 20); var mult:uint = 0x80; // 50% bmd1.merge(bmd2, rect, pt, mult, mult, mult, mult); var bm1:Bitmap = new Bitmap(bmd1); addChild(bm1); var bm2:Bitmap = new Bitmap(bmd2); addChild(bm2); bm2.x = 110;
noise | () | yöntem |
public function noise(randomSeed:int, low:uint = 0, high:uint = 255, channelOptions:uint = 7, grayScale:Boolean = false):void
Dil Sürümü: | ActionScript 3.0 |
Çalışma Zamanı Sürümleri: | Flash Player 9, AIR 1.0 |
Görüntüyü, rastgele paraziti temsil eden piksellerle doldurur.
Parametreler
randomSeed:int — Kullanılacak rastgele tohum sayısı. Diğer tüm parametreleri aynı tutarsanız, rastgele tohum değerini değiştirerek farklı yapay olarak rastgele sonuçlar oluşturabilirsiniz. Parazit işlevi, doğru bir yapay olarak rastgele sayı oluşturma işlevi değil, bir eşleme işlevidir, bu nedenle de aynı rastgele tohumdan her seferinde aynı sonuçları oluşturur.
| |
low:uint (default = 0 ) — Her kanal için oluşturulacak en düşük değer (0 - 255).
| |
high:uint (default = 255 ) — Her kanal için oluşturulacak en yüksek değer (0 - 255).
| |
channelOptions:uint (default = 7 ) — Dört renk kanalı değerinin (BitmapDataChannel.RED , BitmapDataChannel.BLUE , BitmapDataChannel.GREEN ve BitmapDataChannel.ALPHA ) herhangi bir birleşimi olabilen bir sayı. Kanal değerlerini birleştirmek için mantıksal OR operatörünü (| ) kullanabilirsiniz.
| |
grayScale:Boolean (default = false ) — Bir Boolean değeri. Değer true olursa, tüm renk kanalları aynı değere ayarlanarak gri tonlu bir görüntü oluşturulur. Bu parametrenin true değerine ayarlanmasıyla alfa kanalı seçimi etkilenmez.
|
İlgili API Öğeleri
flash.display.BitmapDataChannel.BLUE
flash.display.BitmapDataChannel.GREEN
flash.display.BitmapDataChannel.ALPHA
Örnek ( Bu örnek nasıl kullanılır? )
noise()
yöntemini çağırır. Ancak grayscale
parametresi, birinci nesnenin noise()
yöntemine çağrı için false
değerine ve ikinci nesnenin noise()
yöntemine çağrı için true
değerine ayarlanır.
import flash.display.Bitmap; import flash.display.BitmapData; import flash.display.BitmapDataChannel; var bmd1:BitmapData = new BitmapData(80, 80); var bmd2:BitmapData = new BitmapData(80, 80); var seed:int = int(Math.random() * int.MAX_VALUE); bmd1.noise(seed, 0, 0xFF, BitmapDataChannel.RED, false); bmd2.noise(seed, 0, 0xFF, BitmapDataChannel.RED, true); var bm1:Bitmap = new Bitmap(bmd1); this.addChild(bm1); var bm2:Bitmap = new Bitmap(bmd2); this.addChild(bm2); bm2.x = 90;
paletteMap | () | yöntem |
public function paletteMap(sourceBitmapData:BitmapData, sourceRect:Rectangle, destPoint:Point, redArray:Array = null, greenArray:Array = null, blueArray:Array = null, alphaArray:Array = null):void
Dil Sürümü: | ActionScript 3.0 |
Çalışma Zamanı Sürümleri: | Flash Player 9, AIR 1.0, Flash Lite 4 |
Her kanal için bir tane olmak üzere dört taneye kadar renk paleti verisi dizisi olan renk kanalı değerlerini yeniden eşler.
Flash çalışma zamanları, sonuç görüntüsünü oluşturmak için şu adımları kullanır:
- Kırmızı, yeşil, mavi ve alfa değerleri hesaplandıktan sonra, standart 32 bit tam sayı aritmetiği kullanılarak bunlar birbirine eklenir.
- Her pikselin kırmızı, yeşil, mavi ve alfa kanalı değerleri ayrı 0 - 255 değerlerine çıkarılır. Uygun dizideki yeni renk değerlerini aramak için bu değerler kullanılır:
redArray
,greenArray
,blueArray
vealphaArray
. Bu dört dizinin her biri 256 değer içermelidir. - Yeni kanal değerlerinin dördü de alındıktan sonra, piksele uygulanan standart bir ARGB değerine birleştirilir.
Kanallar arası efektler bu yöntemle desteklenebilir. Her girdi dizisi tam 32 bit değer içerebilir ve değerler birbirine eklendiğinde değişme oluşmaz. Bu yordam kanal başına kelepçelemeyi desteklemez.
Bir kanal için herhangi bir dizi belirtilmezse, kaynak görüntüdeki renk kanalı hedef görüntüye kopyalanır.
Genel palet eşleme (bir kanalı alıp yanlış bir renk görüntüsüne dönüştürme) gibi çeşitli efektler için bu yöntemi kullanabilirsiniz. Gama, eğriler, düzeyler ve nicelendirme gibi çeşitli gelişmiş renk işleme algoritmaları için de bu yöntemi kullanabilirsiniz.
Parametreler
sourceBitmapData:BitmapData — Kullanılacak girdi bitmap görüntüsü. Kaynak görüntü farklı bir BitmapData nesnesi olabilir veya geçerli BitmapData örneğini ifade edebilir.
| |
sourceRect:Rectangle — Kaynak görüntünün girdi olarak kullanılacak alanını tanımlayan bir dikdörtgen.
| |
destPoint:Point — Hedef görüntü (geçerli BitmapData nesnesi) içinde kaynak dikdörtgenin sol üst köşesine karşılık gelen nokta.
| |
redArray:Array (default = null ) — redArray öğesi null değilse, red = redArray[source red value] else red = source rect value .
| |
greenArray:Array (default = null ) — greenArray öğesi null değilse, green = greenArray[source green value] else green = source green value.
| |
blueArray:Array (default = null ) — blueArray öğesi null değilse, blue = blueArray[source blue value] else blue = source blue value .
| |
alphaArray:Array (default = null ) — alphaArray öğesi null değilse, alpha = alphaArray[source alpha value] else alpha = source alpha value .
|
Atar
TypeError — sourceBitmapData, sourceRect veya destPoint değerleri null olur.
|
Örnek ( Bu örnek nasıl kullanılır? )
paletteMap()
yöntemini kullanır.
import flash.display.Bitmap; import flash.display.BitmapData; import flash.geom.Rectangle; import flash.geom.Point; var myBitmapData:BitmapData = new BitmapData(80, 80, false, 0x00FF0000); myBitmapData.fillRect(new Rectangle(20, 20, 40, 40), 0x0000FF00); var redArray:Array = new Array(256); var greenArray:Array = new Array(256); for(var i:uint = 0; i < 255; i++) { redArray[i] = 0x00000000; greenArray[i] = 0x00000000; } redArray[0xFF] = 0x0000FF00; greenArray[0xFF] = 0x00FF0000; var bottomHalf:Rectangle = new Rectangle(0, 0, 100, 40); var pt:Point = new Point(0, 0); myBitmapData.paletteMap(myBitmapData, bottomHalf, pt, redArray, greenArray); var bm1:Bitmap = new Bitmap(myBitmapData); addChild(bm1);
perlinNoise | () | yöntem |
public function perlinNoise(baseX:Number, baseY:Number, numOctaves:uint, randomSeed:int, stitch:Boolean, fractalNoise:Boolean, channelOptions:uint = 7, grayScale:Boolean = false, offsets:Array = null):void
Dil Sürümü: | ActionScript 3.0 |
Çalışma Zamanı Sürümleri: | Flash Player 9, AIR 1.0 |
Perlin parazit görüntüsü oluşturur.
Perlin parazit oluşturma algoritması, tek tek rastgele parazit işlevlerini (oktav adı verilir), daha doğal görünümlü rastgele parazit oluşturan tek bir işleve ekleyip birleştirir. Müzik oktavları gibi her oktav işlevi, bir öncekinin frekansının iki katıdır. Perlin paraziti, farklı ayrıntı düzeyine sahip birden çok parazit kümesini birleştirdiğinden, “kırılmış parazit toplamı“ olarak açıklanır.
Ağaç damarları, bulutlar ve dağ silsileleri gibi doğal olayların ve manzaraların benzetimini yapmak için Perlin parazit işlevlerini kullanabilirsiniz. Çoğu durumda bir Perlin paraziti işlevinin çıktısı doğrudan görüntülenmez, ancak diğer görüntüleri güçlendirmek ve bunlara yapay olarak rastgele çeşitlemeler vermek için kullanılır.
Basit dijital rastgele parazit işlevleri genellikle sert, kontrastlı noktalar içeren görüntüler üretir. Bu tür sert kontrastlar genellikle doğada bulunmaz. Perlin parazit algoritması farklı ayrıntı düzeylerinde çalışan birden çok parazit işlevini harmanlar. Bu algoritma, komşu piksel değerleri arasında daha küçük çeşitlemeler verir.
Parametreler
baseX:Number — x yönünde kullanılacak frekans. Örneğin, 64 x 128 görüntü için boyutlandırılmış bir parazit üretmek üzere, baseX değeri için 64 değerini iletin.
| |
baseY:Number — y yönünde kullanılacak frekans. Örneğin, 64 x 128 görüntü için boyutlandırılmış bir parazit üretmek üzere, baseY değeri için 128 değerini iletin.
| |
numOctaves:uint — Bu paraziti oluşturmak üzere birleştirilecek oktav veya ayrı parazit işlevleri sayısı. Oktav sayısı arttıkça, daha ayrıntılı görüntüler oluşturulur. Oktav sayısı arttıkça daha fazla işleme süresi gerekir.
| |
randomSeed:int — Kullanılacak rastgele tohum sayısı. Diğer tüm parametreleri aynı tutarsanız, rastgele tohum değerini değiştirerek farklı yapay olarak rastgele sonuçlar oluşturabilirsiniz. Perlin parazit işlevi, doğru bir yapay olarak rastgele sayı oluşturma işlevi değil, bir eşleme işlevidir, bu nedenle de aynı rastgele çekirdekten her seferinde aynı sonuçları oluşturur.
| |
stitch:Boolean — Bir Boolean değeri. Değer true ise, yöntem, bitmap dolgusu olarak döşeme için kusursuz dokular oluşturmak üzere görüntünün geçiş kenarlarını düzleştirmeye çalışır.
| |
fractalNoise:Boolean — Bir Boolean değeri. Değer true ise, yöntem kırılmış parazit oluşturur; aksi takdirde türbülans oluşturur. Türbülanslı bir görüntünün degradesinde görünebilir süreksizlikler vardır, bu da alev veya deniz dalgası gibi keskin görsel efektleri daha iyi yakın duruma getirir.
| |
channelOptions:uint (default = 7 ) — Dört renk kanalı değerinin (BitmapDataChannel.RED , BitmapDataChannel.BLUE , BitmapDataChannel.GREEN ve BitmapDataChannel.ALPHA ) herhangi bir birleşimi olabilen bir sayı. Kanal değerlerini birleştirmek için mantıksal OR operatörünü (| ) kullanabilirsiniz.
| |
grayScale:Boolean (default = false ) — Bir Boolean değeri. Değer true olursa, kırmızı, yeşil ve mavi renk kanallarının her biri aynı değerlere ayarlanarak gri tonlamalı bir görüntü oluşturulur. Bu değer true olarak ayarlanırsa, alfa kanalı değeri etkilenmez.
| |
offsets:Array (default = null ) — Her oktavın x ve y uzaklıklarına karşılık gelen bir noktalar dizisi. Uzaklık değerlerini işleyerek, bir perlinNoise görüntüsünün katmanlarını sorunsuzca kaydırabilirsiniz. Uzaklık dizisindeki her nokta belirli bir oktav paraziti işlevini etkiler.
|
Örnek ( Bu örnek nasıl kullanılır? )
perlinNoise()
yöntemini çağıran bir 200 x 200 piksel BitmapData nesnesi oluşturur.
import flash.display.Bitmap; import flash.display.BitmapData; var bmd:BitmapData = new BitmapData(200, 200, false, 0x00CCCCCC); var seed:Number = Math.floor(Math.random() * 10); var channels:uint = BitmapDataChannel.RED | BitmapDataChannel.BLUE; bmd.perlinNoise(100, 80, 6, seed, false, true, channels, false, null); var bm:Bitmap = new Bitmap(bmd); addChild(bm);
pixelDissolve | () | yöntem |
public function pixelDissolve(sourceBitmapData:BitmapData, sourceRect:Rectangle, destPoint:Point, randomSeed:int = 0, numPixels:int = 0, fillColor:uint = 0):int
Dil Sürümü: | ActionScript 3.0 |
Çalışma Zamanı Sürümleri: | Flash Player 9, AIR 1.0 |
Kaynak görüntüsünden hedef görüntüsüne veya aynı görüntüyü kullanarak piksel erimesi gerçekleştirir. Flash çalışma zamanları, rastgele piksel erimesi oluşturmak için bir randomSeed
değeri kullanır. Piksel erimesini bitinceye kadar sürdürmek için işlevin dönüş değerinin sonraki çağrılarda iletilmesi gerekir.
Kaynak görüntü hedef görüntüye dek değilse, tüm özellikler kullanılarak pikseller kaynaktan hedefe kopyalanır. Bu işlem, boş bir görüntüden tamamen doldurulmuş bir görüntüye erime gerçekleştirilmesini sağlar.
Kaynak ve hedef görüntüler eşitse, pikseller color
parametresiyle doldurulur. Bu işlem, tamamen doldurulmuş bir görüntüden erime gerçekleştirilmesini sağlar. Bu modda, hedef point
parametresi yok sayılır.
Parametreler
sourceBitmapData:BitmapData — Kullanılacak girdi bitmap görüntüsü. Kaynak görüntü farklı bir BitmapData nesnesi olabilir veya geçerli BitmapData örneğini ifade edebilir.
| |
sourceRect:Rectangle — Kaynak görüntünün girdi olarak kullanılacak alanını tanımlayan bir dikdörtgen.
| |
destPoint:Point — Hedef görüntü (geçerli BitmapData örneği) içinde kaynak dikdörtgenin sol üst köşesine karşılık gelen nokta.
| |
randomSeed:int (default = 0 ) — Piksel erimesini başlatmak için kullanılacak rastgele tohum.
| |
numPixels:int (default = 0 ) — Varsayılan, kaynak alanın 1/30'udur (genişlik x yükseklik).
| |
fillColor:uint (default = 0 ) — Kaynak değeri hedef değerine eşit olan pikselleri doldurmak için kullandığınız bir ARGB renk değeri.
|
int — Sonraki çağrılar için kullanılacak yeni rastgele tohum.
|
Atar
TypeError — sourceBitmapData, sourceRect veya destPoint değerleri null olur.
| |
TypeError — numPixels değeri negatiftir.
|
Örnek ( Bu örnek nasıl kullanılır? )
pixelDissolve()
yöntemini kullanır:
import flash.display.BitmapData; import flash.display.Bitmap; import flash.geom.Point; import flash.geom.Rectangle; import flash.utils.Timer; import flash.events.TimerEvent; var bmd:BitmapData = new BitmapData(100, 80, false, 0x00CCCCCC); var bitmap:Bitmap = new Bitmap(bmd); addChild(bitmap); var tim:Timer = new Timer(20); tim.start(); tim.addEventListener(TimerEvent.TIMER, timerHandler); function timerHandler(event:TimerEvent):void { var randomNum:Number = Math.floor(Math.random() * int.MAX_VALUE); dissolve(randomNum); } function dissolve(randomNum:Number):void { var rect:Rectangle = bmd.rect; var pt:Point = new Point(0, 0); var numberOfPixels:uint = 100; var red:uint = 0x00FF0000; bmd.pixelDissolve(bmd, rect, pt, randomNum, numberOfPixels, red); var grayRegion:Rectangle = bmd.getColorBoundsRect(0xFFFFFFFF, 0x00CCCCCC, true); if(grayRegion.width == 0 && grayRegion.height == 0 ) { tim.stop(); } }
scroll | () | yöntem |
public function scroll(x:int, y:int):void
Dil Sürümü: | ActionScript 3.0 |
Çalışma Zamanı Sürümleri: | Flash Player 9, AIR 1.0 |
Görüntüyü belirli bir (x, y) piksel miktarı kaydırır. Kaydırma alanı dışındaki kenar bölgeleri değişmeden kalır.
Parametreler
x:int — Yatay olarak kaydırılacak miktar.
| |
y:int — Dikey olarak kaydırılacak miktar.
|
Örnek ( Bu örnek nasıl kullanılır? )
import flash.display.Bitmap; import flash.display.BitmapData; import flash.geom.Rectangle; var bmd:BitmapData = new BitmapData(80, 80, true, 0xFFCCCCCC); var rect:Rectangle = new Rectangle(0, 0, 40, 40); bmd.fillRect(rect, 0xFFFF0000); var bm:Bitmap = new Bitmap(bmd); addChild(bm); trace (bmd.getPixel32(50, 20).toString(16)); // ffcccccccc bmd.scroll(30, 0); trace (bmd.getPixel32(50, 20).toString(16)); // ffff0000
setPixel | () | yöntem |
public function setPixel(x:int, y:int, color:uint):void
Dil Sürümü: | ActionScript 3.0 |
Çalışma Zamanı Sürümleri: | Flash Player 9, AIR 1.0, Flash Lite 4 |
Bir BitmapData nesnesinin tek bir pikselini ayarlar. Görüntü pikselinin geçerli alfa kanalı değeri bu işlem sırasında korunur. RGB color parametresinin değeri, çarpılmamış bir renk değeri olarak değerlendirilir.
Not: Performansı artırmak için, setPixel()
veya setPixel32()
yöntemini art arda kullandığınızda, setPixel()
ya da setPixel32()
yöntemini çağırmadan önce lock()
yöntemini çağırın ve sonra da tüm piksel değişikliklerini yaptığınızda unlock()
yöntemini çağırın. Bu işlem, bu BitmapData örneğine başvuran nesnelerin siz piksel değişikliklerini tamamlayıncaya kadar güncellenmesini önler.
Parametreler
x:int — Değerleri değişen pikselin x konumu.
| |
y:int — Değerleri değişen pikselin y konumu.
| |
color:uint — Pikselin sonuç RGB rengi.
|
İlgili API Öğeleri
Örnek ( Bu örnek nasıl kullanılır? )
setPixel()
yöntemini kullanır:
import flash.display.Bitmap; import flash.display.BitmapData; var bmd:BitmapData = new BitmapData(80, 80, false, 0xCCCCCC); for (var i:uint = 0; i < 80; i++) { var red:uint = 0xFF0000; bmd.setPixel(i, 40, red); } var bm:Bitmap = new Bitmap(bmd); addChild(bm);
setPixel32 | () | yöntem |
public function setPixel32(x:int, y:int, color:uint):void
Dil Sürümü: | ActionScript 3.0 |
Çalışma Zamanı Sürümleri: | Flash Player 9, AIR 1.0, Flash Lite 4 |
BitmapData nesnesinin tek bir pikselinin renk ve alfa saydamlığı değerlerini ayarlar. Bu yöntem, setPixel()
yöntemine benzer; ana fark, setPixel32()
yönteminin, alfa kanalı bilgilerini içeren bir ARGB renk değerini almasıdır.
Bir BitmapData nesnesindeki tüm pikseller, önceden çarpılmış renk değerleri olarak saklanır. Önceden çarpılmış görüntü pikseli, zaten alfa verileriyle çarpılmış kırmızı, yeşil ve mavi renk kanalı değerlerine sahiptir. Örneğin alfa değeri 0 ise, çarpılmamış değerlerinden bağımsız olarak RGB kanallarının değerleri de 0 olur. Bu veri kaybı, işlemleri gerçekleştirirken bazı sorunlar yaşamanıza neden olabilir. Tüm BitmapData yöntemleri, çarpılmamış değerleri alır ve döndürür. Dahili piksel temsili, bir değer olarak döndürülmeden önce, önceden çarpılmış durumdan çarpılmamış duruma dönüştürülür. Ayarlama işlemi sırasında, ham görüntü pikseli ayarlanmadan önce piksel değeri önceden çarpılır.
Not: Performansı artırmak için, setPixel()
veya setPixel32()
yöntemini art arda kullandığınızda, setPixel()
ya da setPixel32()
yöntemini çağırmadan önce lock()
yöntemini çağırın ve sonra da tüm piksel değişikliklerini yaptığınızda unlock()
yöntemini çağırın. Bu işlem, bu BitmapData örneğine başvuran nesnelerin siz piksel değişikliklerini tamamlayıncaya kadar güncellenmesini önler.
Parametreler
x:int — Değerleri değişen pikselin x konumu.
| |
y:int — Değerleri değişen pikselin y konumu.
| |
color:uint — Pikselin sonuç ARGB rengi. Bitmap opaksa (saydam değil), bu renk değerinin alfa saydamlığı bölümü yok sayılır.
|
İlgili API Öğeleri
Örnek ( Bu örnek nasıl kullanılır? )
setPixel32()
yöntemini kullanır:
import flash.display.Bitmap; import flash.display.BitmapData; var bmd:BitmapData = new BitmapData(80, 80, true, 0xFFCCCCCC); for (var i:uint = 0; i < 80; i++) { var red:uint = 0x60FF0000; bmd.setPixel32(i, 40, red); } var bm:Bitmap = new Bitmap(bmd); addChild(bm);
setPixels | () | yöntem |
public function setPixels(rect:Rectangle, inputByteArray:ByteArray):void
Dil Sürümü: | ActionScript 3.0 |
Çalışma Zamanı Sürümleri: | Flash Player 9, AIR 1.0, Flash Lite 4 |
Bir bayt dizisini dikdörtgen bir piksel verisi bölgesine dönüştürür. Her piksel için ByteArray.readUnsignedInt()
yöntemi çağrılır ve dönüş değeri piksele yazılır. Tam dikdörtgen çizilmeden önce bayt dizisi sonlandırılırsa işlev döndürülür. Bayt dizisindeki verilerin 32 bit piksel değerinde olması beklenir. Pikseller okunduktan önce veya sonra bayt dizisi üzerinde arama işlemi gerçekleştirilmez.
Parametreler
rect:Rectangle — BitmapData nesnesinin dikdörtgen bölgesini belirtir.
| |
inputByteArray:ByteArray — Dikdörtgen bölgesinde kullanılacak 32 bit çarpılmamış piksel değerinden oluşan bir ByteArray nesnesi.
|
Atar
EOFError — inputByteArray nesnesi, rect dikdörtgeni alanını doldurmak için yeterli veri içermez. Bu yöntem, istisna atmadan önce olabildiğince fazla piksel doldurur.
| |
TypeError — rect veya inputByteArray değeri null olur.
|
İlgili API Öğeleri
Örnek ( Bu örnek nasıl kullanılır? )
getPixels()
ve setPixels()
yöntemlerini kullanır:
import flash.display.Bitmap; import flash.display.BitmapData; import flash.utils.ByteArray; import flash.geom.Rectangle; var bmd1:BitmapData = new BitmapData(100, 100, true, 0xFFCCCCCC); var bmd2:BitmapData = new BitmapData(100, 100, true, 0xFFFF0000); var rect:Rectangle = new Rectangle(0, 0, 100, 100); var bytes:ByteArray = bmd1.getPixels(rect); bytes.position = 0; bmd2.setPixels(rect, bytes); var bm1:Bitmap = new Bitmap(bmd1); addChild(bm1); var bm2:Bitmap = new Bitmap(bmd2); addChild(bm2); bm2.x = 110;
setVector | () | yöntem |
public function setVector(rect:Rectangle, inputVector:Vector.<uint>):void
Dil Sürümü: | ActionScript 3.0 |
Çalışma Zamanı Sürümleri: | Flash Player 10, AIR 1.5, Flash Lite 4 |
Bir Vector öğesini dikdörtgen bir piksel verisi bölgesine dönüştürür. Her piksel için bir Vector öğesi okunur ve BitmapData pikseline yazılır. Vector öğesindeki verilerin 32 bit ARGB piksel değerinde olması beklenir.
Parametreler
rect:Rectangle — BitmapData nesnesinin dikdörtgen bölgesini belirtir.
| |
inputVector:Vector.<uint> — Dikdörtgen bölgesinde kullanılacak 32 bit çarpılmamış piksel değerinden oluşan bir Vector nesnesi.
|
Atar
RangeError — Vektör dizisi, tüm piksel verilerini okuyacak kadar büyük değildir.
|
threshold | () | yöntem |
public function threshold(sourceBitmapData:BitmapData, sourceRect:Rectangle, destPoint:Point, operation:String, threshold:uint, color:uint = 0, mask:uint = 0xFFFFFFFF, copySource:Boolean = false):uint
Dil Sürümü: | ActionScript 3.0 |
Çalışma Zamanı Sürümleri: | Flash Player 9, AIR 1.0 |
Bir görüntüdeki piksel değerlerini belirtilen eşiğe karşı test eder ve testi geçen pikselleri yeni renk değerlerine ayarlar. threshold()
yöntemini kullanarak bir görüntüdeki renk aralıklarını yalıtabilir ve değiştirebilir ve görüntü pikselleri üzerinde diğer mantıksal işlemleri gerçekleştirebilirsiniz.
threshold()
yönteminin test mantığı şu şekildedir:
((pixelValue & mask) operation (threshold & mask))
olursa, pikselcolor
olarak ayarlanır;- Aksi takdirde,
copySource == true
olursa, pikselsourceBitmap
içindeki karşılık gelen piksel değerine ayarlanır.
operation
parametresi, eşik testi için kullanılacak karşılaştırma operatörünü belirtir. Örneğin operation
parametresi olarak "==" öğesini kullanarak bir görüntüdeki belirli bir renk değerini yalıtabilirsiniz. Veya {operation: "<", mask: 0xFF000000, threshold: 0x7F000000, color: 0x00000000}
öğesini kullanarak kaynak görüntü pikselinin alfası 0x7F değerinden düşük olduğunda tüm hedef pikselleri tamamen saydam olacak şekilde ayarlayabilirsiniz. Animasyonlu geçişler ve diğer efektler için bu tekniği kullanabilirsiniz.
Parametreler
sourceBitmapData:BitmapData — Kullanılacak girdi bitmap görüntüsü. Kaynak görüntü farklı bir BitmapData nesnesi olabilir veya geçerli BitmapData örneğini ifade edebilir.
| |
sourceRect:Rectangle — Kaynak görüntünün girdi olarak kullanılacak alanını tanımlayan bir dikdörtgen.
| |
destPoint:Point — Hedef görüntü (geçerli BitmapData örneği) içinde kaynak dikdörtgenin sol üst köşesine karşılık gelen nokta.
| |
operation:String — String olarak iletilen şu karşılaştırma operatörlerinden biri: "<", "<=", ">", ">=", "==", "!="
| |
threshold:uint — Eşiği karşıladığını veya aştığını görmek için ölçüt alınarak her pikselin test edildiği değer.
| |
color:uint (default = 0 ) — Eşik testinin başarılı olup olmadığını görmek için bir pikselin ayarlandığı renk değeri. Varsayılan değer 0x00000000 değeridir.
| |
mask:uint (default = 0xFFFFFFFF ) — Bir renk bileşenini yalıtmak için kullanılacak maske.
| |
copySource:Boolean (default = false ) — Değer true olursa, eşik testi başarısız olduğunda kaynak görüntüdeki piksel değerleri hedefe kopyalanır. Değer false olursa, eşik testi başarısız olduğunda kaynak görüntü kopyalanmaz.
|
uint — Değiştirilen piksel sayısı.
|
Atar
TypeError — sourceBitmapData, sourceRect destPoint veya operation null olur.
| |
ArgumentError — operation dizesi geçerli bir işlem değildir
|
Örnek ( Bu örnek nasıl kullanılır? )
perlinNoise()
yöntemini kullanır ve sonra da birinci BitmapData nesnesindeki bu pikselleri ikinci BitmapData nesnesine kopyalamak için threshold()
yöntemini kullanır; kırmızı değerinin 0x80 (%50) değerinden büyük olduğu bu pikselleri saydam kırmızıya (0x20FF0000) ayarlanmış bir pikselle değiştirir:
import flash.display.Bitmap; import flash.display.BitmapData; import flash.display.BitmapDataChannel; import flash.geom.Point; import flash.geom.Rectangle; var bmd1:BitmapData = new BitmapData(200, 200, true, 0xFFCCCCCC); var seed:int = int(Math.random() * int.MAX_VALUE); var channels:uint = BitmapDataChannel.RED | BitmapDataChannel.BLUE; bmd1.perlinNoise(100, 80, 12, seed, false, true, channels, false, null); var bitmap1:Bitmap = new Bitmap(bmd1); addChild(bitmap1); var bmd2:BitmapData = new BitmapData(200, 200, true, 0xFFCCCCCC); var pt:Point = new Point(0, 0); var rect:Rectangle = new Rectangle(0, 0, 200, 200); var threshold:uint = 0x00800000; var color:uint = 0x20FF0000; var maskColor:uint = 0x00FF0000; bmd2.threshold(bmd1, rect, pt, ">", threshold, color, maskColor, true); var bitmap2:Bitmap = new Bitmap(bmd2); bitmap2.x = bitmap1.x + bitmap1.width + 10; addChild(bitmap2);
unlock | () | yöntem |
public function unlock(changeRect:Rectangle = null):void
Dil Sürümü: | ActionScript 3.0 |
Çalışma Zamanı Sürümleri: | Flash Player 9, AIR 1.0 |
BitmapData nesnesine başvuran Bitmap gibi nesnelerin, bu BitmapData nesnesi değiştiğinde güncellenmesi için bir görüntünün kilidini kaldırır. Performansı artırmak için, setPixel()
veya setPixel32()
yöntemine birçok çağrı yapmadan önce veya yaptıktan sonra lock()
yöntemiyle birlikte bu yöntemi kullanın.
Parametreler
changeRect:Rectangle (default = null ) — BitmapData nesnesinin değiştirilmiş alanı. Bu parametre için bir değer belirtmezseniz, BitmapData nesnesinin tüm alanı değiştirilmiş olarak değerlendirilir. Bu parametre için Flash Player version 9.0.115.0 veya sonrası gerekir.
|
İlgili API Öğeleri
Örnek ( Bu örnek nasıl kullanılır? )
bitmapData
özelliğini esas alarak bir BitmapData nesnesi (picture
) oluşturur. Daha sonra, karmaşık bir özel işlev olan ve BitmapData nesnesini değiştiren bir complexTransformation()
öğesi çağırmadan önce lock()
yöntemini çağırır. (Bu örnekte picture
nesnesi ve complexTransformation()
işlevi tanımlanmaktadır.) complexTransformation()
işlevi, picture
nesnesinin bitmapData
özelliğini güncellese de, kod bitmapData
nesnesinde unlock()
yöntemini çağırıncaya kadar değişiklikler yansıtılmaz.
import flash.display.BitmapData; var bitmapData:BitmapData = picture.bitmapData; bitmapData.lock(); bitmapData = complexTransformation(bitmapData); bitmapData.unlock(); picture.bitmapData = bitmapData;
threshold()
yönteminin kullanıldığı bir testi geçer. Bu görev, şu adımlar uygulanarak gerçekleştirilir:
- Bir
url
özelliği oluşturulur; bu, görüntü dosyasının konumu ve adıdır. - Sınıf yapıcısı bir Loader nesnesi oluşturur; bu nesne de,
completeHandler()
yöntemi görüntü işlemeyi tamamladığında gönderilen bir olay dinleyicisini başlatır. - Daha sonra,
request
URLRequest nesnesiloader.load()
öğesine iletilir, böylece görüntüleme nesnesi kullanılarak görüntü belleğe yüklenir. - Ardından görüntü, ekranda x = 0, y = 0 koordinatlarında görüntüyü gösteren görüntüleme listesine yerleştirilir.
completeHandler()
yöntemi daha sonra şunları yapar:- Loader nesnesiyle başlatılan bir Bitmap nesnesiyle birlikte ikinci bir Loader öğesi oluşturur.
- Orijinal görüntünün kopyasını oluşturan
duplicateImage()
yöntemini çağıran ikinci bir Bitmap nesnesi (duplicate
) oluşturur. duplicate
nesnesinin BitmapData nesnesine atanan bir BitmapData nesnesi oluşturur.- Orijinal görüntüyle aynı koordinatlar, genişlik ve yükseklikle başlatılan yeni bir Rectangle nesnesi oluşturur.
- x = 0, y = 0 varsayılan ayarlı yeni bir Point nesnesi oluşturur.
- Şu değişkenleri oluşturur:
operation
— Eşik değeri, orijinalden daha yüksek veya orijinale eşitse yeni rengi uygular.threshold
— Her pikselin karşılaştırıldığı değer (bu örnekte, 0xCC alfasıyla açık gri).color
— Piksellerin eşik testini geçmek için ayarlandığı renk, bu durumda düz sarıdır.mask
— Rengin tam karşıtı (saydam mavi).copySource
—false
değerine ayarlanır ve eşik değerinin geçmemesi durumunda piksel değerlerinin kopyalanmadığını belirtir. Görüntü çoğaltıldığı ve yalnızca eşik testini geçen pikseller değiştirildiği için bu değerin bir anlamı yoktur.
- Önceki değişkenleri kullanarak
threshold()
yöntemini çağırır. Sonuçta elde edilen eşik denklemi şu şekildedir:(geçerli piksel Değeri & 0x000000FF) >= (0xCCCCCCCC & 0x000000FF) olursa, piksel 0xFFFFFF00 olarak ayarlanır
.
Notlar:
- SWF dosyasını Yerel Oynatma Güvenliği, Yalnızca Yerel Dosyalara Erişim şeklinde ayarlanmış biçimde derlemeniz gerekir.
- Bu örnek, Image.gif adlı bir dosyanın SWF dosyanızla aynı dizine yerleştirilmesini gerektirir.
- En fazla yaklaşık 80 piksel genişlikte bir görüntü kullanmanız önerilir.
package { import flash.display.Bitmap; import flash.display.BitmapData; import flash.display.Loader; import flash.display.Sprite; import flash.events.*; import flash.geom.Point; import flash.geom.Rectangle; import flash.net.URLRequest; public class BitmapDataExample extends Sprite { private var url:String = "Image.gif"; private var size:uint = 80; public function BitmapDataExample() { configureAssets(); } private function configureAssets():void { var loader:Loader = new Loader(); loader.contentLoaderInfo.addEventListener(Event.COMPLETE, completeHandler); loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler); var request:URLRequest = new URLRequest(url); loader.x = size * numChildren; loader.load(request); addChild(loader); } private function duplicateImage(original:Bitmap):Bitmap { var image:Bitmap = new Bitmap(original.bitmapData.clone()); image.x = size * numChildren; addChild(image); return image; } private function completeHandler(event:Event):void { var loader:Loader = Loader(event.target.loader); var image:Bitmap = Bitmap(loader.content); var duplicate:Bitmap = duplicateImage(image); var bitmapData:BitmapData = duplicate.bitmapData; var sourceRect:Rectangle = new Rectangle(0, 0, bitmapData.width, bitmapData.height); var destPoint:Point = new Point(); var operation:String = ">="; var threshold:uint = 0xCCCCCCCC; var color:uint = 0xFFFFFF00; var mask:uint = 0x000000FF; var copySource:Boolean = true; bitmapData.threshold(bitmapData, sourceRect, destPoint, operation, threshold, color, mask, copySource); } private function ioErrorHandler(event:IOErrorEvent):void { trace("Unable to load image: " + url); } } }
Tue Jun 12 2018, 01:09 PM Z