// context原 图, float size 压缩比例
public static String thumbnail(String context,float size) {
try {
if (!StringUtil.isEmpty(context)) {
BASE64Decoder decoder = new BASE64Decoder();
// Base64解码
byte\[\] bytes = decoder.decodeBuffer(context);
for (int i = 0; i < bytes.length; ++i) {
if (bytes\[i\] < 0) {
bytes\[i\] += 256;
}
}
String filename = System.currentTimeMillis() + ".jpg";
filename = URLEncoder.encode(filename, "UTF-8");
OutputStream out = new ByteArrayOutputStream();
int bytesum = 0;
int byteread = 0;
ByteArrayInputStream in = new ByteArrayInputStream(bytes);
while ((byteread = in.read(bytes)) != -1) {
bytesum += byteread;
out.write(bytes, 0, byteread); //文件写操作
}
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
outputStream = (ByteArrayOutputStream) out;
ByteArrayInputStream inputStream = new ByteArrayInputStream(outputStream.toByteArray());
out.flush();
out.close();
ByteArrayOutputStream outStream = new ByteArrayOutputStream();
Thumbnails.of(inputStream).scale(size).toOutputStream(outStream);
byte\[\] buffer = new byte\[1024\];
int len = 0;
while ((len = inputStream.read(buffer)) != -1) {
outStream.write(buffer, 0, len);
}
byte\[\] data = outStream.toByteArray();//转化成byte\[\] 网络上都是 byte \[\] data = new byte\[inputStream.available()\];这种方法不可取
//关闭流
outStream.close();
inputStream.close();
//创建 base64Encoder 用来加密
BASE64Encoder base64Encoder = new BASE64Encoder();
//加密后字符串校验是否正确,可以用网上在线工具去校验
String str = base64Encoder.encode(data);
return str;
}
} catch (Exception e) {
e.printStackTrace();
}
return null;
}