圖庫經過skia渲染後dump出照片查看是否是skia的問題

圖片顯示錯亂時用下面的方法將skia 解碼的圖片dump出來,以理清是否skia的原因造成。
dump jpeg解碼出來的SkBitmap方法

/external/skia/src/images/SkImageDecoder_libjpeg.cpp

1. 增加頭文件
#include "SkString.h"
#include <unistd.h>

2. 增加新方法
static void saveToFile(const char name[], const SkBitmap& bm) {
//SkImageEncoder::EncodeFile(name, bm, SkImageEncoder::kJPEG_Type, 50);
SkImageEncoder::EncodeFile(name, bm, SkImageEncoder::kPNG_Type, 100);
}

3. 在onDecode()返回之前,dump SkBitmap:
bool SkJPEGImageDecoder::onDecode(SkStream* stream, SkBitmap* bm, Mode mode) {

....
XLOGD("jpeg_decoder finish successfully, L:%d!!!\n",__LINE__);

// add by mtk start
SkMSec now = SkTime::GetMSecs();
SkDebugf("dump SkBitmap, start>>>%u", now);
if (access("/sdcard/images", F_OK) == 0)
{
SkString filename;
filename.printf("/sdcard/images/%u.png", now);
SkDebugf("SkBitmap save to file %s", filename.c_str() );
saveToFile(filename.c_str(), *bm);
}
// add by mtk end

return true;
}

mmm external/skia
將libskia.so push到手機後,reboot
===========================================
除代碼修改外,還要進行以下操作:

手機連上USB,執行如下命令

adb shell
cd sdcard
mkdir images
chmod 777 images

發佈了71 篇原創文章 · 獲贊 36 · 訪問量 13萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章