import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import sun.misc.BASE64Decoder;
import sun.misc.BASE64Encoder;
/**
* 图片与base64字符串之间的转换
* @author yfli
*
*/
public class Base64Decoder {
/**
* 图片转化成base64字符串
* @param imgFilePath
* @return
*/
public static String GetImageStr(String imgFilePath) {
byte[] data = null;
try {
InputStream in = new FileInputStream(imgFilePath);
data = new byte[in.available()];
in.read(data);
in.close();
} catch (IOException e) {
e.printStackTrace();
}
BASE64Encoder encoder = new BASE64Encoder();
return encoder.encode(data);
}
/**
* base64字符串转化成图片
* @param imgStr
* @param imgFilePath
* @return
*/
public static boolean GenerateImage(String imgStr, String imgFilePath) {
if (imgStr == null) {
return false;
}
BASE64Decoder decoder = new BASE64Decoder();
try {
byte[] bytes = decoder.decodeBuffer(imgStr);
for (int i = 0; i < bytes.length; i++) {
if (bytes[i] < 0) {
int tmp40_38 = i;
byte[] tmp40_37 = bytes;
tmp40_37[tmp40_38] = (byte) (tmp40_37[tmp40_38] + 256);
}
}
OutputStream out = new FileOutputStream(imgFilePath);
out.write(bytes);
out.flush();
out.close();
return true;
} catch (Exception e) {
}
return false;
}
public static void main(String[] args) {
String file = "e:/qiao.png";
System.out.println(GetImageStr(file));
String str = "iVBORw0KGgoAAAANSUhEUgAAAFgAAABjCAIAAACQSlANAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAPSUlEQVR4nN1cS48lSXX+vpN5q6q7pmkGzTAja7xARi0h8xCIhRGssdmyQEhmy4/xxguLDQtLCAlkdrbYsGCBYIXwxrIsg2RLoEFg9zQwPdPV1VX3Znws4p0ZceveevV0ny7dzpsRGY8T5/GdE5GXP/zPz8sJsM1mAu3u0dFmcgAIECQA0gSQBCgAkiAJAACKBgJOEgVIhANAgQIh+npwBCBKvmXfFAgHiM75avQ1AAKSE0SEjgBAIGBmACzf9R2lBgkCYbzhc3YxGTDAgJVg0qhBXI2TA2CQcRgIW0+AAyjIj4smSaAflEDMycVhCXWpn0R8JE1IgBMMkkQ5y8wqpxxaqG4VXx2Aeb/mJ1pOu2gl3icIBzM5N8FpkpxgHAUQBo4EiMFpKpntl56L6eeeylnQz7DBrC2kJQdTH1Xb2xshCxko1h+ZBYkRtCC+DmY2mMGGERp9KxAFEgZsPMfl2/HCQWsNwPzSuTRWIipNmJ4IKi9dOSUyCL6ISbAWR1Kv6dmyERdnG4XO61/RReSFgNgbnOjVGyA52DAIwyiQoORXVoITBIkgpMALwMFRJEqVBTCBQx58OdjZhNJjjB8qeRGaJhh0vaicmqUWN3Pz5exLQWL+WuuLcSQ1OXmFH4UJmZG+rgMgiWzOqU1dCUdsEbAgM5CXNgmA0Qts+CsmGtnFVOSnkzupVEcMZcqV6A0VK2aQmIRxHIzStHaAkSO8CDBIjgA6X5mSmA2et59zSqOOtn42vtmQ/bBAEi7rdXpQUa7pbzHyNglFMlj+I47IvKWrOUWy5lriBgAZB1I2wmDj6nAUHCHvKkAHmTCyGNNMsRdUeoMwoZJhpVYLMDL43njByMRKoJQfzwxU7qbs0nNQcen9o8ai8YgBEpuGYZQoB2gcx4PJ2YiyOoKbXC6ssBhFHozik2EGoudjzUWPQfys5GVMKoyrF4XgobNaLFheDq9QI8EBY5A3CnDguZPjMDi3GmhOxsEm52Ar2PGzzbh+Ok1nnNarkyfTGC2rBXWKPkaZOYLRyVtQWIlXAGhC4jTFwShIHg1l30pZUDaPrPx9A0FHsEYSoiAYQXp4leUiLkhwiQifTpwE0Qk6JABOsjPZ6fr86SvHr568D9idaVqZrZ6en5ye8P333aN3Th/+37NH///0t78+f+/xMBbLMV9rBw1IDnQ/EiCi4XIroBhXNOpF9FJ+SUMRClugLAhUySA40GEYMQEaBEgGDePBK89OV3cO/+LdxxiHj/zPL39zcqb/+uX/vv22c5vX7h2//slPfv6rX/3KgwefHbGgqMLBvAe10968aNPCA89KhcqBth+PfLLC/pFxkAHyHELDwer4nYfTqx9+6+R9/PQnv/rd7/4w8cOvv/GFb3z9i5/+1N+89dbHacdmhxQbjPAkJWNZIpRdJ+vtdeXoVEkdkZnC+tk4W4NcEhmirkmGMIAgrAALHhYYMAqrs2eH9++/+eid4Tv//LPX3/zM177+zb/+1Kc/+uZf0u7QxmmtaQ2sRHNtiajArYJq7MeMLVQgopnkd6qG6oUieOjlkbUXhAEAMGTBIIVhPY2HB/f+9d/+/fGTe9/9x2+DdwVs1hsbVxJgGAYATti0JSLqakaW+07Vi2pefz8PFmI9m+jMQQRL4doi40dWIAZgAAwYBCMgc6ATeefe3UcP3/3Rj//je9/7ATDKuF5PjrQBk8PkMBqGwYShpxqXUIg9qZaL7GurQcR1mBlLROMuAJSPy0VgBA104KRh46Anp+/9968efeyvPvKZz33W0W02kwzOYaKz0eCgABfGURXu2G30iBa1hGu7P718YqEmc5tQcm12N4NpyzGaBTRCG3/+i1//7d99mRyBYXJYHQ2mSTgnzWyAzMtV11jO55CM304cy+FDOZEe15oKIog+OmmVMkRoAdEo4B4BAp0IrynTZnz48OwTn/gceQcaLThnQWcAyQNiJQ22OyOuhVxxXQbmnljUiUzkrILSfULRT8ozwhTQXTBIBne0Gu5jsrOTcfPsYDBbGTTp7NwdHa0Ib2JNDtDtMqJBpZTPoxoDOgIY1SHpmgjQgWI2bQasoIPjO6ujg1fMDtdnGA9Bw2owd0ZigA3B8drtMqL0yhERAbVnClNUzCnNWqhagwtIPLgkbzqhgGlJPX78p9W4OT97z8az1QDaZr1+13hgw30fZAf1gp63RKCw1KWD4KJ0zoUAJzxwYDAaEbdhDTnw/KNvvHZwqH/61j98/19+MKyODu7apD+NOOT6Nbe2zTTJJmBzvj65XYlYmEsuLuqbOSnVqBmbk89w0WKkMgEb2IbC6uDJ1/7+S79/m9ArT05PzqY/Hh4Tbu1OHw9cDSuNBxxWGlYHHwCJQO2+a0+ZShO29Z5RSHnDlLEc4jcHGumA6dEffvvgwYM3XjOnlXCs8e7R8fr05Mnd8dVxHJ3W6+np2p0OKxtTdiumLdtYMuAGJZlMYXhzZmnfwzvSkItMXiPllH01C2mr9AEAcnJ+SIQp55qcUxAQxmwWBMh8fpkgBhAmAbj/odXp6TuHdw7IARA4YVrfOzTyCQAzdzS4OyD43L3GFkougXBFRE9mcUhC4VN70bwOVWzENTklPlpAkD5P4GIO4IPMCJT+cXG7ylv7OmnmUcj77UIWpEnOG6IPLiOydYxpmqhQQKW/Xvk0e6pAnMuGDfA5Qg8jHJL7vNHw6iq03LxEBJfxflU9xh/cKhGIaM2FljKyXGLd507F1OsMfYahEXSRRXavFIp+Ys3XMmACDNCYorwi2vmgUUMo8teG/Qj/szsXVjBOBF1mxG3QDt0o6fVsS7uTIWpGtCRnWS/l0wbMWxB5TDYOPoQrWpuqKLFoGkjWKluttuwFAbYsugDBeVQdeu5NskkpBin3vXsmwdp71wgbWkAKaGsbUcPXl5RUS0SY9dxrFBsH6IDMl4Bczm3EXOC4lCkDK93Iu+QvE02RCx5WYKxmWChIcsUvo5K4Yqrm7UWFLGPSvTxdkFzUFp/8wpGKHGAwBlbajWqi1bbBNQlFbaQug1hubC1GRyGdhQrLz5BBS0ZTIfLNB3vibugMhpQnyVKRFfBFxWQsb96kq8JSp2oF3ksLyUXXTcrHICsrN2RwHf8b/ZfSOo6tmI8RyQKq76ehR8gQ3XNSL8ZqKtmk9kxmhpnFX2oTOzNiTpkfVjxd4ojd29tBONm6TvBlrw6bTV0HzdnYA14XNPDy0TjUU+NSVlXgjvp+eOCloHEe0pVfmhb+pfGhNV2QoarOfmPrWZYXnPa2ES8rjUsdz1ajcIQWD7YDVWQ7deBmyh1ZAVB7h9ISkiV9ar8YlGIsX+8OpQg8PKt243XMnjHzvALZCLrmjg41AOhMZWvxC0BjTzd6WGA542Z+9YWjuddAAotJP9QKNtJ5mRkX4iGvF44aXqO5rKzlwlPaa8rh6gtLXYkI1BSHgvxma/lYsE4vmlBcgCOaLCghZd7Xzb6mn7lovRJW9XXD7GvgoCjVLa/RIiekM+sAwPDmkapg3HsypWg0+h+FoF6qNmYKHctAvnpTRywaL20PERPoKmxTLsrVSqWdeYbwgAPTBk+jeEF14BhP1EdG1A7Fn9VvhS2Ngw3tQUdoEcN7VEfsirX1A5hDhNRI3O0FirMFS9HYbxN4aS5YwJUdHvd/xdJtaXrXIe1auj2i34MRvf3YauvtIkXLXrm5e/v8kFnDazQnkyeAairZp6oAwh2jmDPjTQwW9Dwdib9Vx7OnajTWMw5dWezZlMNswJpI9DlDkbGl9t3tTCCjznARc7IpKLJaSZINZwVE+wcf0vGqbox2I7SH18grlo6IKkdjybrPPUWzqTJwjKnmcDjKn3BqvoVe1tauFnpHakLsdg9zxAkASK/uM/qkLC2LRO12yBSZmrZfSYuN1Z3Ww6owCeO/IL9uV6GaM2LfV9zbg9O2r72DDnv1e+2RbjcM35Fmubzl9dxwdmL2mQHaTsH7LA/yXoFaydu2+9xuOiJtl4XC9aZmFU1uqQYBmTb7W2xEXnyccAdqu8+lmBRvWbYGt7jAQhaKgiIzVz7YuN3vMaYCr0sm5u6TWLw1U/Z8afLrZY1EjpVLz5KnbC5zSlKG4ca7V9ysb7jPvWjL483dvfKcGOeFM5HYNrECzuxwqHIHar332a7ZYDgXzjxP3i9bFVND6aW6YBtYbylrJnhd5SrHEGP89Aj6lm7L5lyLEVcRkiT4ScEKfCiloyrxBFM9snq3nVa7EOY6VUEI7YtthtygFeYujajFoyudxd6JZQ3o2vSScyO0izhs72cvuhIjLtF37xROI7q9XRp33c5seQ2ibal6Gf3CKARjWcp5aT9vnx17eI3dENW2mguXV8UjOWzrgqkbpJ3fBO4gCe4DMMp1NsyTNEh2IfwkURtH3BDd8lt++bKEDCXGotAXqRukKwEqAlDzJZleIJ/Kq1rBxXkB8efu+oi+c1Duqrxr5Sw71Kin7p7NBYyoLzqvGsybCXizhAGFqb1iDHBV99nEcN0IrRCEefme1uD68xE7OqoU7ZWaQHYSOb2oMHIoZ5Ai9sbOwr2MXet0+iVpZxuhwttflmYzIGm1ZpXX2hIY3AAA29VGFOJc1beOFnTfPConEEPRJvoPFqHfcrAPl/wZnDld9TDZ5Rw9GX4HZRm8qnXdawWobWrcW2gfhtTiTkFj6wjVPrPbOSHCamT+pzJZbqbPKCTtfWje96asucDwg53xx2qjI87XPUY0Otg31dO2lp3ce+FoMhesEswcqBe7RMm+mhmE2QNEduSp/fBVYPxhXqeuCnTc581A2733CjruuaK8jXZB19hqCNpnqBpxVM8odtq9FlOet5q2NnctfbWSt02XlLc+NavfGFkLMaH8jb2LWijvz/O9S/t3HTTHERcM6xYDwjR7fz0PTMo610GNDZ428vdjWiy1dfjSaaQXSDWbKI8eRHbMPKUvvY61WdiIPtq94s0Li5Y1ZwbC5jfqalejeapuS7uKufj69jUMoxNZz0Y1xwvXS1fd4NmL2AnGysi6etc031xG7tdMjXOW2wV7p5XYslG6LYiqyxRtZIq+bkYWPO1xYqZZ1Auterajc7+wi8kiEOF3hGI/S1kor6+6G37BWewFLXDHHrFnL0xM58jyIcNyNzh7UOwR2+xJe2aodtONSylwe+cnwbgl8Lte2lMiFiXdA1fN3H/3hBhzv7Mcf3yVCfEdK7dciq1nN3akPwMkmjnZGUbOdQAAAABJRU5ErkJggg==";
GenerateImage(str, "e:/test2.png");
}
}