java根据url抓取并生成缩略图
复制代码代码如下:
Mapa de bits estático público loadImageFromUrl (String url, int sc) {
URL m;
Flujo de entrada i = nulo;
BufferedInputStream bis = nulo;
ByteArrayOutputStream fuera = nulo;
byte isBuffer[] = nuevo byte[1024];
si (url == nulo)
devolver nulo;
intentar {
m = nueva URL(url);
i = (InputStream) m.getContent();
bis = nuevo BufferedInputStream(i, 1024 * 4);
salida = nuevo ByteArrayOutputStream();
longitud int = 0;
mientras ((len = bis.read(isBuffer)) != -1) {
out.write(isBuffer, 0, len);
}
fuera.cerrar();
bis.cerrar();
} captura (MalformedURLException e1) {
e1.printStackTrace();
devolver nulo;
} captura (IOException e) {
e.printStackTrace();
}
si (fuera == nulo)
devolver nulo;
byte[] datos = out.toByteArray();
Opciones de BitmapFactory.Options = nuevo BitmapFactory.Options();
opciones.inJustDecodeBounds = verdadero;
BitmapFactory.decodeByteArray(datos, 0, datos.longitud, opciones);
opciones.inJustDecodeBounds = falso;
int be = (int) (options.outHeight / (float) sc);
si (ser <= 0) {
ser = 1;
} más si (ser > 3) {
ser = 3;
}
opciones.inSampleSize = ser;
Mapa de bits bmp = nulo;
intentar {
bmp = BitmapFactory.decodeByteArray(datos, 0, datos.longitud, opciones); // 返回缩略图
} captura (OutOfMemoryError e) {
// TODO: manejar excepción
Sistema.gc();
bmp = nulo;
}
devolver bmp;
}