I inspected Bitmap.cpp and found this function:
static jboolean Bitmap_writeToParcel(JNIEnv* env, jobject,
const SkBitmap* bitmap,
jboolean isMutable, jobject
parcel) {
if (parcel == NULL) {
SkDebugf("------- writeToParcel null parcel\n");
return false;
}
android::Parcel* p = android::parcelForJavaObject(env, parcel);
p->writeInt32(isMutable);
p->writeInt32(bitmap->config());
p->writeInt32(bitmap->width());
p->writeInt32(bitmap->height());
p->writeInt32(bitmap->rowBytes());
if (bitmap->getConfig() == SkBitmap::kIndex8_Config) {
SkColorTable* ctable = bitmap->getColorTable();
if (ctable != NULL) {
int count = ctable->count();
p->writeInt32(count);
memcpy(p->writeInplace(count * sizeof(SkPMColor)),
ctable->lockColors(), count * sizeof(SkPMColor));
ctable->unlockColors(false);
} else {
p->writeInt32(0); // indicate no ctable
}
}
size_t size = bitmap->getSize();
bitmap->lockPixels();
memcpy(p->writeInplace(size), bitmap->getPixels(), size);
bitmap->unlockPixels();
return true;
}
I can manually marshal a Bitmap parcel in the proper format, and then
append the custom byte buffer, and then use createFromParcel to create
a bitmap. That gets me indirect access to creating a bitmap directly
from a byte buffer. It's a bit of a hack obviously, and not ideal. Is
there a better way to do this?
On Dec 1, 2:41 pm, Koush <[EMAIL PROTECTED]> wrote:
> I'm trying to populate a create a bitmap from something other than an
> RGBA int array.
> However, the Bitmap creation overloads only take int arrays as inputs.
>
> In particular, I have a byte buffer that is in the R5G6B5 format that
> I want to load directly into a bitmap. The format is supposedly
> supported internally, but I can't figure out how to create the bitmap
> without doing the R5G6B5 to A8R8G8B8 conversion first.
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[EMAIL PROTECTED]
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en
-~----------~----~----~----~------~----~------~--~---