Re: alpha value from NSBitmapImageRep
Re: alpha value from NSBitmapImageRep
- Subject: Re: alpha value from NSBitmapImageRep
- From: chaitanya pandit <email@hidden>
- Date: Tue, 28 Oct 2008 16:49:46 +0530
Thanks ken,
This sounds more "legal" than manually accessing the image data with
some hard coded values.
I created a CGContextRef as you mentioned, now how can i access the
alpha value at a given point in the ref?
I am totally new to CG and imaging so pl. bare with me.
On 28-Oct-08, at 4:08 PM, Ken Ferry wrote:
Hi chaitanya,
Actually, much better than accessing image data is getting the image
drawing machinery to do the work for you. It will get the various
image data formats right, and you're providing high level information
("do the same thing to the entire image") that may enable
optimizations. Accessing image data directly is quite error prone, as
it turns out. It's easy to accidentally hardwire assumptions about
bitmap format that do not hold when the OS changes.
In this case, you want would want to make a CGBitmapContextRef with
kCGImageAlphaOnly. This will let you produce a buffer full of your
alpha values. Creating and drawing in the context looks something
like this (typed in Mail):
CGContextRef alphaBitmapCtx =
CGBitmapContextCreate(myDestinationBuffer, width, height,
8/*bitsPerComponent*/, bytesPerRow, NULL/*colorSpace*/,
kCGImageAlphaOnly);
[NSGraphicsContext saveGraphicsState];
[NSGraphicsContext setCurrentContext:[NSGraphicsContext
graphicsContextWithGraphicsPort:alphaBitmapCtx flipped:NO]];
[image drawInRect:NSMakeRect(0,0,width,height) fromRect:NSZeroRect
operation:NSCompositeCopy fraction:1.0];
[NSGraphicsContext restoreGraphicsState];
Following this code, myDestinationBuffer has all the alpha data from
the image.
-Ken
Cocoa Frameworks
On Tue, Oct 28, 2008 at 2:59 AM, chaitanya pandit
<email@hidden> wrote:
I want to compute the alpha value of each pixel of an image.
What i am doing right now is i create a NSBitmapImageRep from the
image and
use colorAtX: y: to get the alpha value form the color at that pixel.
So i need to do this for each and every pixel in the image.
I was just going through the WWDC 2008's "916-Getting started with
Instruments" session where they worked on a sample image
enhancement app.
They had a similar case where they had to compute the color at
every pixel.
The author says the process can be optimized if we first gather the
imageRep's data and then access the color values directly from that
data
So heres how i get the data:
unsigned char *data = [mImageRep bitmapData] , *pixel;
Now how do i access the pixel information from over here? any idea?
I'd be glad if someone can help me optimize this.
_______________________________________________
Cocoa-dev mailing list (email@hidden)
Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden
_______________________________________________
Cocoa-dev mailing list (email@hidden)
Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden