如何dump bitmap数据到文件。有时候需要逐位分析图片数据是可以用到。此方法是未经压缩的数据,网上很多方法都是调用的bitmap的compress接口拿到byte数据,是经过压缩的。
try { BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream("/sdcard/pic.txt")); int bHeight = bitmap.getHeight(); int bWidth = bitmap.getWidth(); int rowBytes = bitmap.getRowBytes(); byte[] bytes = new byte[rowBytes * bHeight]; for(int i=0;i<bHeight;i++){ for(int j=0;j<bWidth;j++){ int pvalue = bitmap.getPixel(j, i); for(int k=0;k<4;k++){ bytes[rowBytes * i + j*4 + k] = (byte)(pvalue >> (24 - i * 8)); } } } bos.write(bytes); bos.flush(); bos.close(); } catch (IOException e) { e.printStackTrace(); }
网上的带压缩的代码实现
ByteArrayOutputStream stream = new ByteArrayOutputStream(); bitmap.compress(Bitmap.CompressFormat.PNG, 100, stream); byte[] byteArray = stream.toByteArray(); try { BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream("/sdcard/bubblepic.txt")); bos.write(byteArray); bos.flush(); bos.close(); } catch (IOException e) { e.printStackTrace(); }