Actionscript 3.0 İle Görüntü Filtrelerini Kullanmak
12 Eylül 2008 – 01:28Resim işleme programlarında kullanılan resim efektlerinin bir kısmını Flash içerisinde de uygulayabiliyoruz. Tabii bu hem IDE kısmında hem de kod kısmında yapılabilen bir işlem. Ben kod kısmına değineceğim. Actionscript ile görüntü objelerine verebileceğiniz efekt sayısı birkaç tane ile sınırlı değil. Daha doğrusu buradaki sayıyı sizin yaratıcılığınız ve merakınız belirliyor. Burada sadece var olan filtreleri düşünmeyin, yeni filtreler yaratabilir ve bunlarıda kullanabilirsiniz. Özellikle Flash Player’in yeni sürümünde (Cod Adı: Astro) kendi filtrelerinizi oluşturmak için ayrı bir program yer almakta (Pixel Bender). Bu programın mantığına ve nasıl çalıştığına bir sonraki yazıda değinceğim.
Yeni Bir Filtre Oluşturmak ve Uygulamak
Yeni bir filtre oluşturmak aslında çok basit. Burada ki mantık normal obje oluşturma ile aynı, yani yapacağınız tek işlem yeni bir filtre objesi oluşturmak ve bu filtrenin zorunlu kıldığı değerleri vermek. En basit ve en çok kullanılan filtrelerden bir tanesi Blur filtresi.
-
var blurFilt:BlurFilter = new BlurFilter (10, 10, BitmapFilterQuality.HIGH);
Yukarıda oluşturulan yeni Blur Filtresi 3 adet parametre alıyor. Bunların ilki x koordinatına uygulamak istediğiniz blur değeri, ikincisi y koordinatına uygulamak istediğiniz blur değeri. Son olarak ta filtrenin kalitesi. Diğer bir deyişle filtrenin aldığı parametreler şu şekilde;
-
var blurFilt:BlurFilter = new BlurFilter (blurX, blurY, BitmapFilterQuality.HIGH);
Filtremizi oluşturduk, peki bu filtreyi bir görüntü objesine nasıl uygulayabiliriz? Bunun için aslında iki yöntem var, bunların ilki DisplayObject sınıfının filters özelliği ile ikincisi ise BitmapData sınıfının applyFilter metodunu kullanarak. Bu makalede Display Object sınıfının filters özelliğini kullanacağım.
-
my_mc.filters = [blurFilt];
Evet, gördüğünüz gibi aslında mantık çok basit, herhangi bir movie clibe x koordinatını atamak ile aynı şey aslında. Değinmek istediğim nokta ise filters özelliği aslında bir dizi değişkeni şeklinde yapılandırılmış. Bunun sebebi ise bir görüntü objesine birden fazla filtre kullanımı sağlamak için.
Birden Fazla Filtre Uygulamak
Yukarda dediğim gibi aslında birden fazla filtre uygulamak ile tek bir filtre uygulamak arasında bir fark yok. Tek yapmanız gereken filtre özelliğine bu filtreleri teker teker eklemek.
-
var blurFilt:BlurFilter = new BlurFilter (10, 10, BitmapFilterQuality.HIGH);
-
var shadowFilt:DropShadowFilter = new DropShadowFilter(10,45,0×999999,1.0, 5,5);
-
my_mc.filters = [blurFilt, shadowFilt];
Kullanılan Filtreleri Kaldırmak
Dinamik olarak oluşturduğunuz filtreleri belli bir süre sonra kaldırmak isteyebilirsiniz. Bu gibi durumlarda yapmanız gereken filtreyi uyguladığınız objenin filters özelliğini yeniden düzenlemek. Eğer tüm filtreleri kaldırmak istiyorsanız yapmanı gereken tek şey, filters özelliğine null değerini vermek. Böylece tüm filtreleri iptal etmiş olursunuz.
-
my_mc.filters = null;
Tabii eğer sadece tek bir filtreyi kaldırıp diğerlerini karışmak istemiyorsanız, tüm filtreleri bir dizi değişkenine atayarak, sadece istediğiniz filtreyi içerisinden silip, dizi değişkenini referans olarak filters özelliğine atayabilirsiniz.
Filtre Örnekleri
Aşağıdaki swf dosyasında birkaç tane filtreyi kullanarak basit bir örnek yaptım. Uygulanan filtre ile beraber filtrenin kodunu da sağ tarafta görebilirsiniz. Yukarıda filtrelerin sadece temelde nasıl kullanıldığına dair bilgiler yer almakta. Filtreler içerisinde kullanılan özelliklerin neler olduğu ve flash.filters paketindeki diğer filtrelere aşağıdaki linkten ulaşabilirsiniz. http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/flash/filters/package-detail.html
Kaynak Kodlar
Engin Yöyen

3 Responses to “Actionscript 3.0 İle Görüntü Filtrelerini Kullanmak”
güzel makale, teşekkürler…
By arda gökbulut on Eyl 21, 2008