• 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: alpha value from NSBitmapImageRep
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: alpha value from NSBitmapImageRep


  • Subject: Re: alpha value from NSBitmapImageRep
  • From: "Ken Ferry" <email@hidden>
  • Date: Tue, 28 Oct 2008 03:38:52 -0700

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

  • Follow-Ups:
    • Re: alpha value from NSBitmapImageRep
      • From: chaitanya pandit <email@hidden>
References: 
 >alpha value from NSBitmapImageRep (From: chaitanya pandit <email@hidden>)

  • Prev by Date: alpha value from NSBitmapImageRep
  • Next by Date: Re: alpha value from NSBitmapImageRep
  • Previous by thread: alpha value from NSBitmapImageRep
  • Next by thread: Re: alpha value from NSBitmapImageRep
  • Index(es):
    • Date
    • Thread