21 Aralık 2005

Image Processing ve Java

Arkadaşlar Java'nın gücünü gün geçtikçe daha iyi anlıyorum. Image Processing üzerine bir kaç ödevim vardım ve Java'da yapacaktım.İki tane, bana göre temel sayılabilcek, sınıf keşfettim. PixelGrabber ve MemoryImageSource.PixelGrabber sınıfı ile bir Image objesinin pixellerini teker teker elde edebiliyorsunuz.Aşağıda gözükmektedir:

Image originalImage = new ImageIcon( imageURLString ).getImage();
int [] originalPixelArray;
PixelGrabber grabber = new PixelGrabber(originalImage, 0, 0, -1,
-1, true);
if (grabber.grabPixels()) {
originalPixelArray = (int[]) grabber.getPixels();
}

Daha sonra bu pixel dizisi üzerinde istediğiniz işlemi yaptıktan sonra yeni pixellernden oluşan dizi ile MemoryImageSource sınıfını kullanarak işlenmiş resmi oluşturabiliyorsunuz:

MemoryImageSource mis = new MemoryImageSource(width, height, newPixelArray,
0, width);
Image newImage = createImage(mis);

Burda width ve height parametreleri yeni resmin genişliğini ve yüksekliğini gösteriyor. Bir resme nasıl animasyonlu bir şekilde fade etkisi uygulandığını görmek için tıklayınız.

17 Aralık 2005

Castor ve XML

Uzun bir aradan sonra tekrar ilginç bir teknoloji ile karşınızdayım:) Gerçi teknoloji sayılmaz ama bir proje diyelim. Castor projesi size XML dosyaları üzerinde çok çeşitli işlemler yapabileceğiniz API'ler sunuyor.Örneğin XML dosyalarını Java Bean'ler şeklinde parse edebilyorsunuz ve XML parse edildikten sonra yapılan herhangi bir değişikliği otomatik olarak algılayıp XML dosyasını güncelleyebiliyorsunuz.Açıçası database kullanmadan XML kullanarak bir web uygulaması yazabilirsiniz, bunu neden söyledim, çünkü bir e-ticaret sitesi yapacağım ve bunu sadece XML dosyaları kullanarak yapmayı düşünüyorum.Bakalım Castor ile neler yapabileceğiz...

03 Aralık 2005

Arrays sınıfı harika...

Geçenlerde Java 5 Tiger'a bakıyordum biraz.Gözüme çok güzel bir sınıf takıldı,java.util.Arrays .Bu sınıf ile sizin uzun uzun yaptığınız dizi işlemlerini bir metodla yapabiliyorsunuz. Mesela iki diziyi

Arrays.equals(myArray, myOtherArray);

şeklinde karşılaştırabiliyorsunuz yada bir dizi içinde binary search yapabiliyorsunuz, şu şekilde:

int index = Arrays.binarySearch(myArray, 98);

En önemlisi

Arrays.sort(myArray);

diyerek dizinizin elemanlarını sıralayabiliyorsunuz.Kısacası bir bakmanızı tavsiye ederim.