Andrid Skia EncodeFile 背景为黑色
彩色的泡泡 2013-05-06 04:23:54 求助:我将Android.png读入SkBitmap bp,然后将bp 存成 new.jpg。图片显示是正常的,但是,如下图所示,为什么new.jpg背景是黑色的?如何能够改变它的背景颜色?
另外:如何通过Skia将图片的数据存入二进制的Buffer中?然后,再如何将二进制格式的数据转换成图片格式保存?(图片格式是jpg,png 及bmp)需要实现这个功能,不知道有哪些方法?忘各位不吝赐教!
Native 代码如下:
jint Java_com_example_test1_NativeMethods_DrawJpg(JNIEnv * env, jobject obj, jobject canvas)
{
SkCanvas* canv = GraphicsJNI::getNativeCanvas(env, canvas);
if (!canv)
{
return 0;
}
SkBitmap bp;
SkPaint paint;
SkImageDecoder::Format fmt;
bool result = SkImageDecoder::DecodeFile("/sdcard/Android.png",&bp,SkBitmap::kARGB_8888_Config,SkImageDecoder::kDecodePixels_Mode,&fmt);
if(!result)
{
LOGI("decoder file fail!");
return -1;
}
else
{
result = SkImageEncoder::EncodeFile("/sdcard/new.jpg", bp,
SkImageEncoder::kJPEG_Type,100);
if(!result)
{
LOGI("encoder file fail!");
}
canv->drawBitmap(bp,0,0,&paint);
}
return 1;
}