[android-developers] Re: Bitmap issue ...

2008-09-24 Thread Kurt Jacobs
Mike,
   To be honest with you, I'd need to develop more to have a better feel for
it.  I will however, let you know in the future.

Thanks again for you help,
Kurt


On Wed, Sep 24, 2008 at 7:17 AM, Mike Reed <[EMAIL PROTECTED]> wrote:

> There is no way to write to a bitmap in its native format in 1.0, but you
> can read the values by calling copyPixelsToBuffer(). This fills out the
> buffer with whatever the native config is (alpha_8, 565, , ).
> If you could extend the api post 1.0, what functionality would you like to
> see?
>
> mike
>
>
> On Sep 23, 2008, at 2:53 PM, Kurt Jacobs wrote:
>
> Mike,
>Thanks for the explanation.  Is there a way (method that I could call)
> that I can convert the raw bitmap
> to the multiplied version because doing the setPixel?
>
> Thanks,
> Kurt
>
>
> On Tue, Sep 23, 2008 at 11:34 AM, Mike Reed <[EMAIL PROTECTED]> wrote:
>
>>
>> The confusion (and I will try to update the dox to make this clearer)
>> is that the color int is in unpremultipled form, but the internal
>> format for Bitmap pixels is premultiplied.
>>
>> "premultiplied" means that the r,g,b components have already been
>> multiplied by their respective alpha value. Thus 50% transparent Red
>> would be stored as 0x8080
>>
>> "unpremultipled" means that the r,g,b components are stored in their
>> raw form, independent of the alpha value. Thus 50% transparent Red
>> would be stored as 0x80FF
>>
>> Thus when you specify 0x08040201 in unpremultiplied form (as you
>> should for the input to setPixels), that color is internally converted
>> to its premultiplied equivalent, which in this case happens to be
>> 0x0800. When you call getPixels(), the values are converted back
>> to unpremultiplied form automatically, but in this case there is no
>> change.
>>
>> mike
>>
>> On Sep 23, 2008, at 10:40 AM, JakeMaui wrote:
>>
>>
>> I have a bitmap issue.  I created a simple PNG that was 1 pixel high,
>> 16 wide pure white.
>> I loaded the bitmap, extracted the pixels, changed the first one and
>> then created a bitmap
>> from the altered data.  The issue is that I thought that until I save
>> it, I would have a raw bitmap will all the bits set as I had set
>> them.  I found that the bits changed.
>> Does anybody know what I need to do to preserve the bitmap with the
>> bits that I set
>> into it?
>>
>> sample code ...
>>  int picw= bitmap.getWidth();
>>  int pich=bitmap.getHeight();
>>  int[] pix = new int[picw*pich];
>>  bitmap.getPixels(pix, 0, picw, 0, 0, picw, pich);
>>
>>  // It's pure white at this point.
>>  // I set the first byte to this but when I pull it out of the newly
>> constructed
>>  // bitmap, it's 0x800
>>  pix[0]=0x08040201;
>>  createdBitmap = Bitmap.createBitmap(picw, pich,
>> Bitmap.Config.ARGB_);
>>  createdBitmap.setPixels(pix, 0, picw, 0, 0, picw, pich);
>>
>>   // get pixels of newly created bitmap
>>   int picw=embeddedBitmap.getWidth();
>>   int pich=embeddedBitmap.getHeight();
>>   int[] pix = new int[picw*pich];
>>   createdBitmap.getPixels(pix, 0, picw, 0, 0, picw, pich);
>>
>> Results 
>> 1000 0100 0010 0001 before
>> 1000   000
>>
>>
>>
>>
>>
>>
>
>
>
>
>
> >
>

--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to android-developers@googlegroups.com
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
-~--~~~~--~~--~--~---



[android-developers] Re: Bitmap issue ...

2008-09-23 Thread Kurt Jacobs
Mike,
   Thanks for the explanation.  Is there a way (method that I could call)
that I can convert the raw bitmap
to the multiplied version because doing the setPixel?

Thanks,
Kurt


On Tue, Sep 23, 2008 at 11:34 AM, Mike Reed <[EMAIL PROTECTED]> wrote:

>
> The confusion (and I will try to update the dox to make this clearer)
> is that the color int is in unpremultipled form, but the internal
> format for Bitmap pixels is premultiplied.
>
> "premultiplied" means that the r,g,b components have already been
> multiplied by their respective alpha value. Thus 50% transparent Red
> would be stored as 0x8080
>
> "unpremultipled" means that the r,g,b components are stored in their
> raw form, independent of the alpha value. Thus 50% transparent Red
> would be stored as 0x80FF
>
> Thus when you specify 0x08040201 in unpremultiplied form (as you
> should for the input to setPixels), that color is internally converted
> to its premultiplied equivalent, which in this case happens to be
> 0x0800. When you call getPixels(), the values are converted back
> to unpremultiplied form automatically, but in this case there is no
> change.
>
> mike
>
> On Sep 23, 2008, at 10:40 AM, JakeMaui wrote:
>
>
> I have a bitmap issue.  I created a simple PNG that was 1 pixel high,
> 16 wide pure white.
> I loaded the bitmap, extracted the pixels, changed the first one and
> then created a bitmap
> from the altered data.  The issue is that I thought that until I save
> it, I would have a raw bitmap will all the bits set as I had set
> them.  I found that the bits changed.
> Does anybody know what I need to do to preserve the bitmap with the
> bits that I set
> into it?
>
> sample code ...
>  int picw= bitmap.getWidth();
>  int pich=bitmap.getHeight();
>  int[] pix = new int[picw*pich];
>  bitmap.getPixels(pix, 0, picw, 0, 0, picw, pich);
>
>  // It's pure white at this point.
>  // I set the first byte to this but when I pull it out of the newly
> constructed
>  // bitmap, it's 0x800
>  pix[0]=0x08040201;
>  createdBitmap = Bitmap.createBitmap(picw, pich,
> Bitmap.Config.ARGB_);
>  createdBitmap.setPixels(pix, 0, picw, 0, 0, picw, pich);
>
>   // get pixels of newly created bitmap
>   int picw=embeddedBitmap.getWidth();
>   int pich=embeddedBitmap.getHeight();
>   int[] pix = new int[picw*pich];
>   createdBitmap.getPixels(pix, 0, picw, 0, 0, picw, pich);
>
> Results 
> 1000 0100 0010 0001 before
> 1000   000
>
>
>
>
> >
>

--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to android-developers@googlegroups.com
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
-~--~~~~--~~--~--~---