0

Javafx Grafiklerle Çalışma Part -1

Merhaba arkadaşlar bu yazıda javafx ‘de resimleri projemize nasıl alacağız , nasıl yükleyeceğiz ve kullanacağız bunlardan bahsedeceğim. Ayrıca resimler üzerinde bazı manipülasyonları nasıl yapabiliriz bunlardan da bahsetmek istiyorum. Javafx de popüler resim formatlarını  kullanabiliriz. Ayrıca resimler üzerinde scala, rotate gibi transformasyonları yapabiliriz. Ayrıca renk özelliklerini de değiştirebiliriz. Saturation,Hue, Brightness,Contrast gibi… Başlamadan önce bu videoyu izlemenizi tavsiye ederim. Resource klasörünü nasıl ayarlayacağımızı anlatıyor. 

Bu işlemleri öğrendikten sonra basit bir fotoğraf düzenleme uygulaması bile yapılabilirsiniz. 

Grafiklerle Çalışma

javafx.scene.image.Image Api’si içinde bulunan ve işimizi kolaylaştıran birçok constructor var. Bu constructor’lar ile farklı yöntemlerle resim yüklemesi yapabiliyoruz.  Bu constructorlar’a bakalım

• Image(java.io.InputStream inputStream)
• Image(java.io.InputStream is, double requestedWidth, double
requestedHeight, boolean preserveRatio, boolean smooth)
• Image(java.lang.String url)
• Image(java.lang.String url, boolean backgroundLoading)
• Image(java.lang.String url, double requestedWidth, double
requestedHeight, boolean preserveRatio, boolean smooth)
• Image(java.lang.String url, double requestedWidth, double
requestedHeight, boolean preserveRatio, boolean smooth, boolean
backgroundLoading)

Parametre Data Tipi Açıklama
inputStream java.io.InputStream Dosya yada Network üzerinden veri akışı için kullanılır
url String Dosya Sisteminden yada bir Web sunucusu üzerinden yüklerken kullanılan dosya yolu bilgisi
backgroundLoading boolean Resmi arkaplanda ana Thread dışında yüklemek için kullanılan parametre
requestedWidth double Resmin istenen genişliğini belirtir
requestedHeight double Resmin istenen yüksekliğini belirtir
preserveRatio boolean Resmin en boy oranını korumak için kullanılır.
smooth boolean Resim üzerinde smooth işlemi yapılıp yapılmamasını belirler

Şimdi projemize 3 ayrı yol ile resimler / Grafikler nasıl yüklenir bunları gösterelim.

  1.  Yerel Dosya Sisteminden  ( Local File System )
  2. Sınıflar üzerinden ( ClassPath)
  3. Uzak Sunucudan Yükleme ( Remote Web Server )

bakın kodlarda dikkatinizi bazı noktalara çekeceğim.  Image(String url, boolean background)  metodu  true / false parametre alıyor. Bu parametre işlemin arkaplanda mı yoksa ana UI thread’de mi yapılacağını ifade ediyor. Yine konsola url’leri yazdırdığımızda dosya yoluna “file:” ön eki eklenerek dosya protokolü formatına çeviriliyor. ClassPath yönteminde ise url şu şekilde oluyur.  “jar:file: ..” şeklindeki ifadenin anlamı da ; grafiğin *.jar arşivinin içinde olduğunu ifade ediyor. 

Eğer projenizin içinde “resources” klasörünüz varsa  şu şekilde de yükleme yapabilirsiniz.

src/
+–main/
+—-java/
+——-com/
+———mycompany/
+———–MyClass.java
+—-resources/

+——-com/
+———mycompany/
+———–my_image.jpg

Tabi buraya kadar resmi kaynağından nasıl alacağımızı gördük ancak henüz resmi UI de gösterebilmek için hazırlamadık. Resimleri arayüzümüzde göstermek için “ImageView” nesnesini kullanacağız. Buyrun birde bu konuya bakalım

Resimleri UI ‘de göstermek

javafx.scene.image.ImageView  Api ‘si altında bulunan ImageView nesnemizle kolayca aldığımız resimleri gösterebiliriz.  Bu nesne sayesinde resim üzerinde çeşitli manipülasyonlar yapabiliriz. Efekt eklemek ve boyutlandırma , döndürme gibi…

örnek kodlarımızda arkaplanda yüklenen bir resmi gösterelim

Resmimiz yüklendiğinde orjinal genişlik ve yükseklik değerleri ile yüklenecektir.  Evet buraya kadar ki bölümde resimleri nasıl yükleyeceğimizi ve ekranda nasıl göstereceğimizi öğrenmiş olduk.  Şimdi konuyu biraz daha ileri taşıyalım ve bahsettiğimiz manipülasyonlar nasıl yapılır bunlara anlatmaya çalışayım. 

Bunları da 2. bölümde anlatalım …. 

admin

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir