Thanks a bunch! That worked great. No more leaking.

On Tue, Mar 11, 2008 at 4:46 AM, Rob Keniger <[EMAIL PROTECTED]> wrote:
>  I had problems with this too, and I use a workaround I found somewhere
>  where you render to a CGImageRef in the context of the current window.
>  Here's a dump of the code:
>
>  //theImage is an existing NSImage
>  CIImage *outputImage = [CIImage imageWithData:[theImage
>  TIFFRepresentation]];
>
>  //to draw the image processed by Core Image, we need to draw into an
>  on-screen graphics context
>  //this works around a bug in CIImage where drawing in off-screen
>  graphics contexts causes a huge memory leak
>
>  //get the current window's graphics context so that we have an on-
>  screen context
>  //usually we would use any view's window but generically you can just
>  ask for the main window
>  CIContext *ciContext = [[[NSApp mainWindow] graphicsContext] CIContext];
>  if(ciContext == nil)
>  {
>         NSLog(@"The CIContext of the main window could not be accessed.
>  Bailing out of the image creation process.");
>         return;
>  }
>
>  CGAffineTransform transform;
>  transform = CGAffineTransformMakeTranslation(0.0,[outputImage
>  extent].size.height);
>  transform = CGAffineTransformScale(transform, 1.0, -1.0);
>  outputImage = [outputImage imageByApplyingTransform:transform];
>
>  //render the CIIimage into a CGImageRef in the on-screen context
>  CGImageRef cgImage = [ciContext createCGImage:outputImage fromRect:
>  [outputImage extent]];
>  // Draw the CGImageRef into the current context
>  if (cgImage != NULL)
>  {
>         CGContextDrawImage ([[NSGraphicsContext currentContext]
>  graphicsPort], [outputImage extent], cgImage);
>         CGImageRelease (cgImage);
>  }
>
>  HTH
>
>  --
>  Rob Keniger
>
>
> _______________________________________________
>
>  Cocoa-dev mailing list ([email protected])
>
>  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/slasktrattenator%40gmail.com
>
>  This email sent to [EMAIL PROTECTED]
>
_______________________________________________

Cocoa-dev mailing list ([email protected])

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 [EMAIL PROTECTED]

Reply via email to