圖片顯示錯亂時用下面的方法將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
圖庫經過skia渲染後dump出照片查看是否是skia的問題
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.