根据URL抓取并生成缩略图的Java代码
根据URL抓取并生成缩略图的Java代码
public static Bitmap loadImageFromUrl(String url, int sc) { URL m; InputStream i = null; BufferedInputStream bis = null; ByteArrayOutputStream out = null; byte isBuffer[] = new byte[1024]; if (url == null) return null; try { m = new URL(url); i = (InputStream) m.getContent(); bis = new BufferedInputStream(i, 1024 * 4); out = new ByteArrayOutputStream(); int len = 0; while ((len = bis.read(isBuffer)) != -1) { out.write(isBuffer, 0, len); } out.close(); bis.close(); } catch (MalformedURLException e1) { e1.printStackTrace(); return null; } catch (IOException e) { e.printStackTrace(); } if (out == null) return null; byte[] data = out.toByteArray(); BitmapFactory.Options options = new BitmapFactory.Options(); options.inJustDecodeBounds = true; BitmapFactory.decodeByteArray(data, 0, data.length, options); options.inJustDecodeBounds = false; int be = (int) (options.outHeight / (float) sc); if (be <= 0) { be = 1; } else if (be > 3) { be = 3; } options.inSampleSize = be; Bitmap bmp = null; try { bmp = BitmapFactory.decodeByteArray(data, 0, data.length, options); // 返回缩略图 } catch (OutOfMemoryError e) { // TODO: handle exception System.gc(); bmp = null; } return bmp; }