Ronsen's Blog

Menampilkan Thumbnail dari Layanan Berbagi Foto

Friday, July 8, 2011

Sebelum Twitter meluncurkan sendiri layanan berbagi fotonya, kita masih akan sering menjumpai layanan serupa seperti TwitPic, Yfrog, img.ly, Lockerz, Flickr, Instagram, dll. Enaknya sih setiap melihat teman berbagi foto lewat layanan-layanan yang kusebut tadi langsung ditampilkan thumbnail-nya. Kalau misalnya memang menarik baru berkunjung ke situsnya untuk melihat foto/gambar dalam ukuran yang lebih besar.

Masing-masing layanan biasanya sudah menyediakan dokumentasi lengkap cara untuk menampilkan gambar dalam bentuk yang bermacam-macam, bisa dalam ukuran yang kecil, sedang, besar, malah dalam ukuran yang sebenarnya. Jika semua layanan seperti ini, tentu sangat berguna karena tidak merepotkan pengguna harus berpindah ke situs-situs tersebut.

Berikut cara untuk menampilkan thumbnail menggunakan Java:
 package photo;  
   
 import java.util.HashMap;  
 import java.util.Iterator;  
 import java.util.Map;  
 import java.util.regex.Matcher;  
 import java.util.regex.Pattern;  
   
 public class Photo {  
   public static void main(String[] args) {  
     String text = "http://flic.kr/p/96H1D9";  
   
     Map<String, String> services = new HashMap<String, String>();  
     services.put("twitpic.com/([\\d\\w]+)", "http://twitpic.com/show/thumb/%s");  
     services.put("yfrog.com/([\\w\\d]+)", "http://yfrog.com/%s:small");  
     services.put("moby.to/\\??([\\w\\d]+)", "http://moby.to/%s:square");  
     services.put("mobypicture.com/\\?([\\w\\d]+)", "http://mobypicture.com/?%s:square");  
     services.put("lockerz.com/s/(\\d+)",  
         "http://api.plixi.com/api/tpapi.svc/imagefromurl?size=thumbnail&amp;url=http://lockerz.com/s/%s");  
     services.put("img.ly/([\\d\\w]+)", "http://img.ly/show/thumb/%s");  
     services.put("flic.kr/p/([\\d\\w]+)", "http://flic.kr/p/img/%s.jpg");
     services.put("instagr.am/p/([\\d\\w]+)+/", "http://instagr.am/p/%s/media/?size=t");
   
     for (Map.Entry<String, String> e : services.entrySet()) {  
       String regex = e.getKey();  
       String s = e.getValue();  
       Pattern pattern = Pattern.compile(regex, Pattern.CASE_INSENSITIVE);  
       Matcher matcher = pattern.matcher(text);  
       while (matcher.find()) {  
         text = "<a href=\"http://" + matcher.group() + "\">" + "<img src=\""  
             + String.format(s, matcher.group(1))  
             + "\"></a>";  
       }  
     }  
   
     System.out.println(text);  
   }  
 }  

Yah, tentu saja ada beberapa yang perlu diperhatikan dari contoh di atas misalnya urutan penampilan gambar karena (dari contoh di atas) Twitpic-lah yang selalu ditampilkan pertama. Tentu akan aneh jika misalnya kau meletakkan Flickr pada urutan pertama.