Thank you Glenn. You are right.
> Furthermore, if the image is a jpg image, clipping would need the image to be
> recompressed and end up degrading the image quality (since PDFs can embed jpg
> files directly), or again, potentially increase the file size.
Yes, I thought about that. And I have indeed seen that small but real
degradation. Not so fine. At the end I left the world as is.

> And if you draw a PDF image inside the view, those PDF instructions/objects
> are encoded into the resulting file - if you want to clip that, you either
> need to rasterize it (loosing quality) or perform clipping operations on
> shapes to produce new ones (which can be non-trivial).
I though to not to clip the vectorial images, but as I wrote above...

At this time, I am struggling with the QuartzFilter to compress the pdf :-)
I'm going to post a new question since it sounds as a different topic.


Regards
-- Leonardo


> Da: glenn andreas <gandr...@me.com>
> Data: Thu, 27 Feb 2014 10:20:58 -0600
> A: Leonardo <mac.iphone....@gmail.com>
> Cc: Cocoa-dev List List <cocoa-dev@lists.apple.com>
> Oggetto: Re: dataWithPDFInsideRect doesn't clip images within NSView
> 
> A PDF file can "reuse" an image and draw the same thing multiple times in
> multiple places.  If it saved just the clipped version, it would need multiple
> copies of the same image, which would actually increase the file size.
> 
> So if the purpose of adding a "cropImages" flags was to save file space, in
> some case it will result in taking more space.
> 
> Furthermore, if the image is a jpg image, clipping would need the image to be
> recompressed and end up degrading the image quality (since PDFs can embed jpg
> files directly), or again, potentially increase the file size.
> 
> And if you draw a PDF image inside the view, those PDF instructions/objects
> are encoded into the resulting file - if you want to clip that, you either
> need to rasterize it (loosing quality) or perform clipping operations on
> shapes to produce new ones (which can be non-trivial).
> 
> 
> On Feb 27, 2014, at 9:57 AM, Leonardo <mac.iphone....@gmail.com> wrote:
> 
>> Thank you. I have coded it. I lock the focus of the NSView, I draw and get
>> the clipped image, then I re-draw the NSView with the clipped image +
>> borders, rotation, shadow. Of course, since the user could choose the ppi
>> output, I resize-resample the view before locking it.
>> 
>> It should be useful to have an option as
>>    [view dataWithPDFInsideRect:bounds clipPaths:YES];
>> 
>> 
>> 
>> Regards
>> -- Leonardo
>> 
>> 
>>> Da: Graham Cox <graham....@bigpond.com>
>>> Data: Thu, 27 Feb 2014 22:38:42 +1100
>>> A: Leonardo <mac.iphone....@gmail.com>
>>> Cc: Cocoa-dev List List <cocoa-dev@lists.apple.com>
>>> Oggetto: Re: dataWithPDFInsideRect doesn't clip images within NSView
>>> 
>>> 
>>> On 27 Feb 2014, at 9:31 pm, Leonardo <mac.iphone....@gmail.com> wrote:
>>> 
>>>> I draw an NSImage within an NSView scaling its size in order to fill the
>>>> image within the view bounds. The image is larger than the NSView's bounds,
>>>> but on the display it looks well clipped to those bounds.
>>>> 
>>>> Since the image's NSView is a subView of the page's NSView, I create a PDF
>>>> saving that page's NSView
>>>> 
>>>> [pageView dataWithPDFInsideRect:pageRect];
>>>> 
>>>> and I get a pdf file. Anyway, when I inspect the pdf file with Acrobat, I
>>>> clearly see that the image hasn't been cropped. As I see from the blue
>>>> rectangle around the visible small image, the whole original and larger
>>>> image has been embedded within the pdf document.
>>>> In facts if I Control-Click-Edit the image on the pdf, I get the original
>>>> whole image. So the pdf file size results bigger than what it would really
>>>> be. I don't get this trouble when saving the page to a TIFF or any other
>>>> raster image file (with NSBitmapImageRep -> CGImage ->
>>>> displayRectIgnoringOpacity -> CGImageDestinationFinalize).
>>> 
>>> 
>>> This is exactly what you'd expect. Core Graphics basically *is* a PDF. So
>>> when
>>> you draw an image into a view that is clipped, all you're doing is setting a
>>> clipping path and drawing an image. The PDF faithfully records that.
>>> 
>>> When you create a different image that is clipped to the smaller area, then
>>> that's what is recorded.
>>> 
>>>> My question:
>>>> Do you know an option, any API, to clip the image to its NSView's frame on
>>>> the pdf, as it properly looks on the display? Or should I clip the image by
>>>> my own code?
>>> 
>>> 
>>> When you know how it works, the question becomes moot. The short answer is
>>> 'no', there's no API. You have to resample/crop the image as you need, or
>>> accept the larger filesize for the convenience that you get from the simple
>>> API.
>>> 
>>> --Graham
>>> 
>>> 
>> 
>> 
>> _______________________________________________
>> 
>> 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:
>> https://lists.apple.com/mailman/options/cocoa-dev/gandreas%40me.com
>> 
>> This email sent to gandr...@me.com
> 


_______________________________________________

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

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

Reply via email to