Skip navigation.
 
mlRe: Creating an NSImage from a bitmap
FROM : Hidetomo Katsura
DATE : Thu Aug 10 22:01:02 2006

btw, there is a leak in my sample code (glyph also needs to be 
released or autoreleased). sorry about that.

regards,
katsura

On Aug 10, 2006, at 12:45 PM, Craig Dooley wrote:

> Actually, to correct myself, I don't need to flip the alpha.  I was
> compositing it incorrectly.  Thanks for the help.
>
> -Craig
>
> On 8/10/06, Hidetomo Katsura <<email_removed>> wrote:

>> make sure to let the mailing list know that it worked. :)
>>
>> regards,
>> katsura
>>
>> On Aug 10, 2006, at 12:17 PM, Craig Dooley wrote:
>>
>> > You're right.  I think I got it working by flipping the alpha, and
>> > using NSCompositeDestinationAtop.  I don't know where I got that 
>> from,
>> > but that's for fixing that for me.
>> >
>> > -Craig
>> >
>> > On 8/10/06, Hidetomo Katsura <<email_removed>> wrote:
>> >> you are welcome. fyi, it works with the same pattern for both 
>> black
>> >> and alpha. i forgot to mention that you need to use
>> >> NSCompositeSourceOver (not NSCompositeCopy) to draw the image 
>> if you
>> >> want to use alpha.
>> >>
>> >> regards,
>> >> katsura
>> >>
>> >> On Aug 10, 2006, at 11:39 AM, Craig Dooley wrote:
>> >>
>> >> > Thanks guys.  That works if I copy the pattern and bitswap it
>> >> for the
>> >> > alpha channel.
>> >> >
>> >> > On 8/10/06, Hidetomo Katsura <<email_removed>> wrote:
>> >> >> Craig,
>> >> >>
>> >> >> this seems to work. you need to use an alpha plane and
>> >> hasAlpha:YES
>> >> >> if you want a transparent center.
>> >> >>
>> >> >> - (NSImage *)black16x16SquareImage
>> >> >> {
>> >> >>        static unsigned char pattern[] =
>> >> >>        {
>> >> >>                0xff, 0xff,
>> >> >>                0xff, 0xff,
>> >> >>                0xc0, 0x03,
>> >> >>                0xc0, 0x03,
>> >> >>                0xc0, 0x03,
>> >> >>                0xc0, 0x03,
>> >> >>                0xc0, 0x03,
>> >> >>                0xc0, 0x03,
>> >> >>                0xc0, 0x03,
>> >> >>                0xc0, 0x03,
>> >> >>                0xc0, 0x03,
>> >> >>                0xc0, 0x03,
>> >> >>                0xc0, 0x03,
>> >> >>                0xc0, 0x03,
>> >> >>                0xff, 0xff,
>> >> >>                0xff, 0xff
>> >> >>        };
>> >> >>
>> >> >>        NSBitmapImageRep *glyph;
>> >> >>        NSImage *image;
>> >> >>        unsigned char *planes[ 2 ];
>> >> >>
>> >> >>        planes[ 0 ] = pattern;  // black
>> >> >>        planes[ 1 ] = pattern;  // alpha
>> >> >>        glyph = [[NSBitmapImageRep alloc]
>> >> >> initWithBitmapDataPlanes:&planes[ 0 ]
>> >> >>                                pixelsWide:16
>> >> >>                                pixelsHigh:16
>> >> >>                                bitsPerSample:1
>> >> >>                                samplesPerPixel:2
>> >> >>                                hasAlpha:YES
>> >> >>                                isPlanar:YES
>> >> >>
>> >> >> colorSpaceName:NSDeviceBlackColorSpace
>> >> >>                                bytesPerRow:2
>> >> >>                                bitsPerPixel:0];
>> >> >>        image = [[NSImage alloc] initWithSize:NSMakeSize( 16,
>> >> 16 )];
>> >> >>        [image addRepresentation:glyph];
>> >> >>
>> >> >>        return [image autorelease];
>> >> >> }
>> >> >>
>> >> >> regards,
>> >> >> katsura
>> >> >>
>> >> >> On Aug 10, 2006, at 9:01 AM, Craig Dooley wrote:
>> >> >>
>> >> >> > I am attempting to take a bitmap, and generate a black/
>> >> transparent
>> >> >> > NSImage from it.  The following example is attempting to 
>> draw a
>> >> >> 16x16
>> >> >> > square in black, that is transparent in the center.  It does
>> >> >> create a
>> >> >> > 16x16 NSImage, which i can display, but only the top line and
>> >> one
>> >> >> > pixel on the second row are black, and the rest is white.  Is
>> >> there
>> >> >> > any way to do this, or do i need to translate the data to
>> >> another
>> >> >> > format first?
>> >> >> >
>> >> >> > unsigned char pattern[] = {
>> >> >> >      0xff, 0xff,
>> >> >> >      0xff, 0xff,
>> >> >> >      0xc0, 0x03,
>> >> >> >      0xc0, 0x03,
>> >> >> >      0xc0, 0x03,
>> >> >> >      0xc0, 0x03,
>> >> >> >      0xc0, 0x03,
>> >> >> >      0xc0, 0x03,
>> >> >> >      0xc0, 0x03,
>> >> >> >      0xc0, 0x03,
>> >> >> >      0xc0, 0x03,
>> >> >> >      0xc0, 0x03,
>> >> >> >      0xc0, 0x03,
>> >> >> >      0xc0, 0x03,
>> >> >> >      0xff, 0xff,
>> >> >> >      0xff, 0xff
>> >> >> > };
>> >> >> >
>> >> >> > unsigned char *planes[] = ;
>> >> >> > glyph = [[NSBitmapImageRep alloc]
>> >> initWithBitmapDataPlanes:planes
>> >> >> >                      pixelsWide:16
>> >> >> >                      pixelsHigh:16
>> >> >> >                      bitsPerSample:1
>> >> >> >                      samplesPerPixel:1
>> >> >> >                      hasAlpha:NO
>> >> >> >                      isPlanar:NO
>> >> >> >                      colorSpaceName:NSDeviceBlackColorSpace
>> >> >> >                      bytesPerRow:0
>> >> >> >                      bitsPerPixel:0];
>> >> >> > image = [[NSImage alloc] init];
>> >> >> > [image addRepresentation:glyph];
>> >> >> >
>> >> >> > -Craig
>> >> >>
>> >> >
>> >> >
>> >> > --
>> >> >
>> >> 
>> ---------------------------------------------------------------------
>> >> -
>> >> > -
>> >> > Craig Dooley <<email_removed>>
>> >>
>> >>
>> >
>> >
>> > --
>> > 
>> ---------------------------------------------------------------------
>> -
>> > -
>> > Craig Dooley <<email_removed>>
>>
>>

>
>
> --
> ----------------------------------------------------------------------
> -
> Craig Dooley <<email_removed>>
> _______________________________________________
> Do not post admin requests to the list. They will be ignored.
> Cocoa-dev mailing list      (<email_removed>)
> Help/Unsubscribe/Update your Subscription:
> http://lists.apple.com/mailman/options/cocoa-dev/<email_removed>
>
> This email sent to <email_removed>

Related mailsAuthorDate
mlCreating an NSImage from a bitmap Craig Dooley Aug 10, 18:01
mlRe: Creating an NSImage from a bitmap Daniel Jalkut Aug 10, 19:42
mlRe: Creating an NSImage from a bitmap Hidetomo Katsura Aug 10, 19:46
mlRe: Re: Creating an NSImage from a bitmap Craig Dooley Aug 10, 21:45
mlRe: Creating an NSImage from a bitmap Hidetomo Katsura Aug 10, 22:01