Re: [Q] Convert PixMapHandle to NSBitmapImageRep
Re: [Q] Convert PixMapHandle to NSBitmapImageRep
- Subject: Re: [Q] Convert PixMapHandle to NSBitmapImageRep
- From: Michael Ash <email@hidden>
- Date: Tue, 24 Mar 2009 18:52:10 -0400
On Tue, Mar 24, 2009 at 6:12 PM, Eric Gorr <email@hidden> wrote:
>
> On Mar 24, 2009, at 6:04 PM, Quincey Morris wrote:
>
>> On Mar 24, 2009, at 14:48, Eric Gorr wrote:
>>
>>> While I should be able to use:
>>>
>>> - (id)initWithBitmapDataPlanes:(unsigned char **)planes
>>> pixelsWide:(NSInteger)widthpixelsHigh:(NSInteger)height
>>> bitsPerSample:(NSInteger)bps
>>> samplesPerPixel:(NSInteger)spphasAlpha:(BOOL)alpha isPlanar:(BOOL)isPlanar
>>> colorSpaceName:(NSString
>>> *)colorSpaceNamebitmapFormat:(NSBitmapFormat)bitmapFormat
>>> bytesPerRow:(NSInteger)rowBytesbitsPerPixel:(NSInteger)pixelBits
>>>
>>> and pass in the appropriate values from my PixMapHandle, I was hoping
>>> that
>>>
>>> PixMapHandle previewPixMap = GetGWorldPixMap( previewGWorld );
>>> LockPixels( previewPixMap );
>>> [NSBitmapImageRep imageRepWithData:[NSData dataWithBytes:*previewPixMap
>>> length:GetHandleSize( (Handle)previewPixMap )]];
>>> UnlockPixels( previewPixMap );
>>>
>>> would have worked, but it doesn't (wasn't really expecting it to).
>>>
>>> Before I went ahead and use the init method, I wanted to find it if there
>>> was something simple that I was missing.
>>
>> Yes. 'imageRepWithData' is expects the data to be an image in a known
>> format (TIFF, JPEG, PNG, PICT, etc). All you have is a pixel array, so of
>> course you're going to have to specify the pixel format and all the other
>> stuff in the 'init...' method.
>
> Are you certain?
>
> It should actually be fairly straightforward to take a GWorld, create a PICT
> from the GWorld, and then use imageRepWithData.
>
> This is the kind of simpler thing I was thinking I might have been missing
> and it avoids the init method. Although, it may not be very efficient.
>
> Of course, I've forgotten how to convert a GWorld into a PICT...
Nothing you say after "Are you certain?" contradicts what Quincey
said. If you want to create a PICT and initialize it that way, then go
right ahead, but that's not remotely what your code was doing.
You have a bunch of pixel data. The standard way to create an
NSBitmapImageRep from pixel data is to use the really long
initializer. However, if you prefer to build some kind of external
image representation from it, then use that to create the
NSBitmapImageRep, that will also work. Btu passing a PixMapHandle to
+imageRepWithData: is completely nonsensical.
Mike
_______________________________________________
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