• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
Re: Creating an NSImage from a bitmap
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Creating an NSImage from a bitmap


  • Subject: Re: Creating an NSImage from a bitmap
  • From: Hidetomo Katsura <email@hidden>
  • Date: Thu, 10 Aug 2006 10:46:23 -0700

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[] = {pattern};
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
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Cocoa-dev mailing list      (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden


References: 
 >Creating an NSImage from a bitmap (From: "Craig Dooley" <email@hidden>)

  • Prev by Date: Re: Creating an NSImage from a bitmap
  • Next by Date: Re: Threads and synchronization
  • Previous by thread: Re: Creating an NSImage from a bitmap
  • Next by thread: Re: Re: Creating an NSImage from a bitmap
  • Index(es):
    • Date
    • Thread