Interesting... I thought about it but dismissed the idea (can't really remember why)...

The thing is, though, that I am also doing some fancier stuff with the pic ( i.e re-sizing and/or cropping, adding a border etc..).. I wrote all these methods already without CIImage (basically Im using BitmapImageRep all the way for everything because its much faster than CIImage for some operations... actually for cropping Im using CGImageSource/CGImageRef...which is much faster than anything else I tried) so basically CIImage is only part of the chain (for brightness/ contrast/saturation) but for the other parts Im using BitmapImageRep...

since I already have a bitmapImageRep I figured displaying its data in an NSImaveView was probably not a big loss in terms of performance... I wonder if drawing directly would be worth it in my case... and most importantly, if it would help solve my huge memory problem (perhaps drawing directly instead of storing the preview in an imageRep would help on the memory usage though so you might have a point!)

J-N


On 2-Dec-08, at 8:27 PM, douglas welton wrote:

Jean-Nicolas,

I haven't followed all of your previous post, so I may be proposing something that you have dismissed already...

Is there a reason that you are using NSImageView to display the image instead of drawing directly (in a custom view) from the CIImage that is output from the last filter in the chain?

curiously,

douglas

On Dec 2, 2008, at 7:01 PM, Jean-Nicolas Jolivet wrote:

Well, right now I am using CoreImage (CIImage and CIImageFilters) to do the brightness/contrast adjustment...

The problem is, I still have to put the result in my NSImageView after that (which is, I assume, what takes up all this ram??)


On 2-Dec-08, at 6:38 PM, glenn andreas wrote:


On Dec 2, 2008, at 5:29 PM, Jean-Nicolas Jolivet wrote:

(This is linked to my last post on the list, however it's a completely different topic so I posted it separately) To sum it up, my app allows to do some basic modifications to an image (brightness/contrast/saturation among others).... those are applied via CIFilters, the app also allows to re-size images...Right now I'm trying to work exclusively with BitmapImageRep since it seems to be faster than using NSImage...

I display a "live" preview of the image (I say "live" because basically all my sliders (to control brightness etc.) do not send continuously but only once the mouse released them)... anyway the way I got it working right now is like this:

I have an NSBitmapImageRep called "previewImage"... this contains the preview image and it gets updated everytime the brightness/ contrast/saturation sliders are released...

in my preview window, I have an NSImageView.. I bound the data of this image view to the "previewImageData" key of my controller which basically only does this:

return [previewImage TIFFRepresentation];


Now, all this is working well, however, I see HUGE ram increases every time I move a slider.. (it gets in the 100+ mb very fast)...and it never seems to drop... I tried to set my sliders to continuous for fun, it gets at about 200mb of ram in a matter of seconds...

I ran Instruments and MallocDebug, apparently I have no leaks (the only leaks I have are NSPathStore which I am not creating)...

Is anything wrong with the way Im doing it? Why the huge ram increases that never drops? If there was an obvious leak I guess Instrument or MallocDebug would've catch it?


One thing to look at is to use CoreImage to do the brightness/ contrast adjustments - rest assured, it will be able to adjust the brightness and contrast of an image faster than you will (since it can use the video card, for example).

Another option, though trickier, is to use ColorSync and make an adjustment profile which is attached to the image, and then just have the image refreshed with the new profile - for things like contrast, brightness, gamma, etc... this works well all the way back to 10.3.

Glenn Andreas                      [EMAIL PROTECTED]
<http://www.gandreas.com/> wicked fun!
JSXObjC | the easy way to unite JavaScript and Objective C





Jean-Nicolas Jolivet
[EMAIL PROTECTED]
http://www.silverscripting.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:
http://lists.apple.com/mailman/options/cocoa-dev/douglas_welton%40earthlink.net

This email sent to [EMAIL PROTECTED]


Jean-Nicolas Jolivet
[EMAIL PROTECTED]
http://www.silverscripting.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:
http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to [EMAIL PROTECTED]

Reply via email to