Java tutorial
//package com.java2s; /***************************************************************************** ** ANGRYBIRDS AI AGENT FRAMEWORK ** Copyright (c) 2013,XiaoYu (Gary) Ge, Stephen Gould,Jochen Renz ** Sahan Abeyasinghe, Jim Keys, Kar-Wai Lim, Zain Mubashir, Andrew Wang, Peng Zhang ** All rights reserved. **This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License. **To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-sa/3.0/ *or send a letter to Creative Commons, 444 Castro Street, Suite 900, Mountain View, California, 94041, USA. *****************************************************************************/ import java.awt.image.*; import java.io.*; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; import javax.imageio.*; public class Main { public static String imageDigest(BufferedImage img) { // write image to byte stream ByteArrayOutputStream os = new ByteArrayOutputStream(); try { ImageIO.write(img, "png", os); os.flush(); } catch (IOException e) { e.printStackTrace(); return null; } byte[] data = os.toByteArray(); // compute md5 hash byte[] hash = null; try { MessageDigest md = MessageDigest.getInstance("MD5"); md.update(data); hash = md.digest(); } catch (NoSuchAlgorithmException e) { e.printStackTrace(); return null; } // convert to string String hexString = ""; for (int i = 0; i < hash.length; i++) { hexString += Integer.toString((hash[i] & 0xff) + 0x100, 16).substring(1); } return hexString; } }