Skip navigation.
 
mlRe: how to get a sub piece of an NSImage or make a new NSImage that is a subset of an existing one
FROM : Chad Leigh
DATE : Sat Aug 12 08:01:49 2006

On Aug 11, 2006, at 11:43 PM, Jonathan Grynspan wrote:

> You can find more information on Cocoa's graphics model at http://
> developer.apple.com/documentation/Cocoa/Conceptual/
> CocoaDrawingGuide/index.html . Of particular interest to you may be 
> the sections on Graphics Contexts and Images.


I am reading that now, thanks.

Unfortunately my new image is a cached screen representation and not 
the hi-res PDF that it was before.  And it appears from the 
CocoaDrawingGuide docs under "Creating Graphics Contexts" that you 
cannot create a new PDF image using the code below.  It says :-
( "Important:  You cannot create a viable graphics context for PDF or 
PostScript canvases using the graphicsContextWithAttributes: method. 
You must go through the Cocoa Printing system instead."  That 
however, is what I need to do, I think.

Thanks
Chad

>
> -Jonathan Grynspan
>
> On 12-Aug-06, at 1:34 AM, Chad Leigh wrote:
>

>>
>> On Aug 11, 2006, at 11:28 PM, Jonathan Grynspan wrote:
>>

>>> Try the following:
>>>
>>> NSImage *partOfImage(NSImage *input, NSRect targetRect) {
>>>     if (input) {
>>>         NSImage *output = [[NSImage alloc] initWithSize: targetRect.size];
>>>         [output lockFocus];
>>>         [input
>>>             drawAtPoint:    NSZeroPoint
>>>             fromRect:    targetRect
>>>             operation:    NSCompositeCopy
>>>             fraction:        1.0f];
>>>         [output unlockFocus];
>>>         return [output autorelease];
>>>     } else {
>>>         return nil;
>>>     }
>>> }

>>
>> Thanks, I will.  I've been reading the lockFocus and the 
>> drawAtPoint stuff since I posted the first request, trying to put 
>> my brain around it.  This helps immensely!
>>
>> Thanks
>> Chad
>>

>>>
>>> -Jonathan Grynspan
>>>
>>> On 12-Aug-06, at 1:17 AM, Chad Leigh wrote:
>>>

>>>> I have a Cocoa app and I get a PDF image over the internet that 
>>>> I store in an NSImage using
>>>>
>>>>    label = [[NSImage alloc] initWithData:finalImage];
>>>>
>>>>
>>>> The image previously was a PNG image and was exactly the image 
>>>> needed.  Now that they pass a PDF image, they pass an image that 
>>>> is an image of a complete piece of paper with the image I am 
>>>> interested in placed on the upper half of this virtual paper 
>>>> (the rest is just blank).  The image is always in the same place 
>>>> and the same size so I can determine a Rect that will always 
>>>> work to select it.  I want to extract this image out of the PDF 
>>>> and create a new NSImage (or overwrite the old one, I don't 
>>>> care) that I can use later on to print in my own existing print 
>>>> routine and to display thumbnails of it.
>>>>
>>>> I do not see how to go about it.  Most of the draw/composite 
>>>> routines I see in NSImage rely on an existing userspace to draw 
>>>> into.  I want to "draw" into a new NSImage.  My brain is having 
>>>> a hard time adjusting to think about how to do this.
>>>>
>>>> Ideally I want something like
>>>>
>>>>     NSImage *newImage = [[NSImage alloc] initFromImage:oldImage 
>>>> usingRect:targetRect];
>>>>
>>>> I expect what I want to do is very easy but if someone could 
>>>> point me on the way I should be exploring I would appreciate it.
>>>>
>>>>
>>>> Thanks
>>>> Chad
>>>>
>>>> _______________________________________________
>>>> MacOSX-dev mailing list
>>>> <email_removed>
>>>> http://www.omnigroup.com/mailman/listinfo/macosx-dev

>>>
>>> _______________________________________________
>>> MacOSX-dev mailing list
>>> <email_removed>
>>> http://www.omnigroup.com/mailman/listinfo/macosx-dev

>>
>> _______________________________________________
>> MacOSX-dev mailing list
>> <email_removed>
>> http://www.omnigroup.com/mailman/listinfo/macosx-dev

>
> _______________________________________________
> MacOSX-dev mailing list
> <email_removed>
> http://www.omnigroup.com/mailman/listinfo/macosx-dev