如何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();
}