1. 程式人生 > >bitmap自己項目中處理遇到的問題

bitmap自己項目中處理遇到的問題

問題 一點 void map file 圖片路徑 tex null 保存

String path = "圖片路徑";
Bitmap bitmap = BitmapFactory.decodeFile(path);
安卓處理圖片都是Bitmap,然後取到圖片的信息,用來Bitmap處理壓縮大小,旋轉圖片角度,保存本地等等處理
然而實際項目中 Bitmap bitmap = BitmapFactory.decodeFile(path); 這個bitmap有可能拿到是空
圖片有問題就拿到是空的,正好也可以通過Bitmap是否為空來判斷圖片是否有問題

//圖片壓縮
new Thread(new Runnable() {
@Override
public void run() {

stepListener.changeProText(0, path);
byte[] bytes = null;
if(path.contains("gif")){
bytes = GifCompress.compressGifToByte(path);
}else{
Bitmap bitmap = null;
try {
bitmap = Bimp.compressionToBitmap(path);
} catch (Exception e) {

e.printStackTrace();
}
if(bitmap != null){
bytes = Compress.compressPicByte(bitmap);
bitmap.recycle();
}else{
try {
InputStream in = new FileInputStream(path);
bytes = new byte[in.available()];

in.read(bytes);
in.close();
}catch (Exception e){
LogUtil.i("Exception",e.toString());
}
}
}
stepListener.changeProText(1, path);
uploadPicToOss(path_upload, path, bytes, perTotal);
}
}).start();
項目中實際上傳的是流數組,如果不處理那流數組就是空的,這裏是阿裏的上傳處理了沒有崩潰,如果不處理,必然崩潰。
如果實在沒辦法,防止崩潰可以直接把圖片路徑直接轉成流變為數組防止崩潰。
這裏就是提供一個思路以後如果不需要處理圖片直接轉流數組沒有一點問題,以後可以借鑒。具體到項目中直接有問題的圖片
直接就不上傳,沒問題的上傳,完美修改項目中的問題,微信就是這麽處理,微信細節做得不錯,值得學習。


by haojingang郝金剛



bitmap自己項目中處理遇到的問題