1、this.nativeInt = nativeInt;final int nativeInt;第二个参数表示压缩的质量,注意这个是压缩的关键,它的取值是0到100,越小表示压缩的越厉害,第三个参数表示把压缩的数据写入了outputstream流中。OK,来看一个例子:public byte compressBitmap(Bitmapbitmap,int max)int quality = 100;ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();press(Bitmap.CompressForma
2、t.JPEG,quality,byteArrayOutputStream);while (byteArrayOutputStream.toByteArray().length / 1024 max)byteArrayOutputStream.reset();quality = quality -10;return byteArrayOutputStream.toByteArray();这个方法的第一个参数不必解释,第二个参数表示你要求的压缩后图片最大可以是多少。最后可以拿到一个byte数组。我们有了这个byte数组就可以转化为file或者bitmap。注意这种质量压缩后,像素本身没有改变。对于
3、像素压缩,顾名思义就是压缩像素。这里用到的一个主要的方法就是:public static Bitmap decodeFile(String pathName, Options opts) Bitmap bm = null;InputStream stream = null;try stream = new FileInputStream(pathName);bm = decodeStream(stream, null, opts); catch (Exception e) /* do nothing.If the exception happened on open, bm will be n
4、ull.*/Log.e(BitmapFactory, Unable to decode stream: + e); finally if (stream != null) stream.close(); catch (IOException e) / do nothing herereturn bm;这是BitmapFactory中的一个静态方法,第一个参数表示file的全路径,第二个参数是关键,Options是BitmapFactory类中的一个静态内部类,它有两个非常重要的属性:/* If set to true, the decoder will return null (no bitm
5、ap), but* the out. fields will still be set, allowing the caller to query* the bitmap without having to allocate the memory for its pixels.public boolean inJustDecodeBounds;* If set to a value 1, requests the decoder to subsample the original* image, returning a smaller image to save memory. The sam
6、ple size is* the number of pixels in either dimension that correspond to a single* pixel in the decoded bitmap. For example, inSampleSize = 4 returns* an image that is 1/4 the width/height of the original, and 1/16 the* number of pixels. Any value h & w ww) /如果宽度大的话根据宽度固定大小缩放be = (int) (newOpts.outWidth / ww); else if (w hh) /如果高度高的话根据宽度固定大小缩放be = (int) (newOpts.outHeight / hh);if (be = 0)be = 1;newOpts.inSampleSize = be;/设置缩放比例/重新读入图片,注意此时已经把options.inJustDecodeBounds 设回false了bitmap = BitmapFactory.decodeFile(srcPath, newOpts);return bitmap;这样就完成了。
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1