Yes, that is then number of pixels, but do you really need that, as the width 
and height would be the same, check those values as well.

--Waqar
On Nov 29, 2009, at 5:13 PM, Chunk 1978 wrote:

> humm... while i understand most of this method, i don't understand
> what is passed as "count"?  i understand that this will convert a
> UIImage into a CGImage, and store each pixel of the image into an
> array, which are indexed by "xx" and "yy" variables.  but what is
> count?  is count the total number of pixels of the passed image?
> 
> ––––––––––
> + (NSArray*)getRGBAsFromImage:(UIImage*)image atX:(int)xx andY:(int)yy
> count:(int)count
> {
>     NSMutableArray *result = [NSMutableArray arrayWithCapacity:count];
> 
>     // First get the image into your data buffer
>     CGImageRef imageRef = [image CGImage];
>     NSUInteger width = CGImageGetWidth(imageRef);
>     NSUInteger height = CGImageGetHeight(imageRef);
>     CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB();
>     unsigned char *rawData = malloc(height * width * 4);
>     NSUInteger bytesPerPixel = 4;
>     NSUInteger bytesPerRow = bytesPerPixel * width;
>     NSUInteger bitsPerComponent = 8;
>     CGContextRef context = CGBitmapContextCreate(rawData, width, height,
>                     bitsPerComponent, bytesPerRow, colorSpace,
>                     kCGImageAlphaPremultipliedLast | kCGBitmapByteOrder32Big);
>     CGColorSpaceRelease(colorSpace);
> 
>     CGContextDrawImage(context, CGRectMake(0, 0, width, height), imageRef);
>     CGContextRelease(context);
> 
>     // Now your rawData contains the image data in the RGBA8888 pixel format.
>     int byteIndex = (bytesPerRow * yy) + xx * bytesPerPixel;
>     for (int ii = 0 ; ii < count ; ++ii)
>     {
>         CGFloat red   = (rawData[byteIndex]     * 1.0) / 255.0;
>         CGFloat green = (rawData[byteIndex + 1] * 1.0) / 255.0;
>         CGFloat blue  = (rawData[byteIndex + 2] * 1.0) / 255.0;
>         CGFloat alpha = (rawData[byteIndex + 3] * 1.0) / 255.0;
>         byteIndex += 4;
> 
>         UIColor *acolor = [UIColor colorWithRed:red green:green
> blue:blue alpha:alpha];
>         [result addObject:acolor];
>     }
> 
>   free(rawData);
> 
>   return result;
> }
> ––––––––––
> 
> so could if i had an image of a tree called "tree.png" that's 50
> pixels in width, and 100 pixels in height, and i want the RGBA color
> data of the second last pixel of the last row of pixels, would i call
> it like this:
> 
> ––––––––––
> [self getRGBAsFromImage:[UIImage imageNamed:@"tree.png"] atX:49
> andY:100 count:(50*100)];
> ––––––––––
> 
> 
> 
> On Sun, Nov 29, 2009 at 1:28 PM, Chunk 1978 <chunk1...@gmail.com> wrote:
>> 
>> precisely!  thanks for this.
>> 
>> On Sun, Nov 29, 2009 at 1:24 PM, Waqar Malik <wmal...@gmail.com> wrote:
>>> 
>>> I think this is what you are looking for.
>>> 
>>> <http://stackoverflow.com/questions/448125/how-to-get-pixel-data-from-a-uiimage-cocoa-touch-or-cgimage-core-graphics>
>>> 
>>> On Nov 29, 2009, at 10:17 AM, Chunk 1978 wrote:
>>> 
>>>> what method, or combination of methods can i use to receive color
>>>> information of a CGPoint.  i can get basic coordinates of a view using
>>>> UITouch's locationInView method, but i'd like to get an RGBA color
>>>> information output.  what methods or example code from apple should i
>>>> research?
>>>> 

_______________________________________________

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

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:
http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com

Reply via email to