YazılımMimarı | 07 Şubat 2013 14:58 | Java ile internetten resim indirmek Merhaba, Java'nın io kütüphanelerini kullanarak internette herhangi bir adreste bulunan bir imajı indirme işlemini farklı iki yöntem ile yapacağım.
İlk örnekte, OutputStream nesnesi ile imajı indireceğiz. Bu işlem aslında dosya indirme işlemi aynı işlemdir fakat genel olarak OutputStream nesnesi bu tür işlem için kullanılıyor. Bu genel kullanımda bir ortak kütüphane kullanımından dolayı problemlerde yaşanabiliyor. Örneğin, OutputStream nesnesi Java'nın web tarafında api içinde hazır gelir ve out nesnesi olarak yazdırma işlemlerinde kullanılır. Bu kullanım eş zamanlı iki işlemi yaptığımızda mesela, bir imaj 'ı bir lokasyona kopyalayıp, sonrada indirmeye çalıştığımızda hata alırız. Hata alma olasılığımız fakat yinede kullanılan yöntem; PHP- Kodu: package com.kp; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.net.URL; public class InternettenImajKaydet{ public static void main(String[] args) throws Exception { String imajUrl = " Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir. style="color: #007700">; String hedefDosya = "kp.png"; imajKaydet(imajUrl , hedefDosya ); } public static void imajKaydet(String imajUrl , String hedefDosya ) throws IOException { URL url = new URL(imajUrl ); InputStream is = url.openStream(); OutputStream os = new FileOutputStream(hedefDosya ); byte[] b = new byte[2048]; int length; while ((length = is.read(b)) != -1) { os.write(b, 0, length); } is.close(); os.close(); } }
Diğer yöntem yukarıdaki yönteme göre daha sağlıklı bir yöntem ImageIO kütüphanesini kullanıyor. PHP- Kodu: package com.kp;
import javax.imageio.ImageIO; import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; import java.net.URL; public class InternettenImajKaydet { public static void main(String[] args ) { BufferedImage imaj=null; try{ URL url =new URL(" Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir. style="color: #007700">); imaj= ImageIO.read(url); ImageIO.write(image, "png",new File("/src/hedefdosya.png")); }catch(IOException e){ e.printStackTrace(); } } }
[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...] |