! (c)2010 Joe Groff bsd license
USING: accessors alien.data cocoa cocoa.classes cocoa.messages
combinators core-foundation.data core-graphics.types fry images
-images.loader io kernel literals ;
+images.loader io io.streams.limited kernel literals ;
IN: images.cocoa
SINGLETON: ns-image
-! "png" ns-image register-image-class
-! "tif" ns-image register-image-class
-! "tiff" ns-image register-image-class
-! "gif" ns-image register-image-class
-! "jpg" ns-image register-image-class
-! "jpeg" ns-image register-image-class
-! "bmp" ns-image register-image-class
-! "ico" ns-image register-image-class
+"png" ns-image register-image-class
+"tif" ns-image register-image-class
+"tiff" ns-image register-image-class
+"gif" ns-image register-image-class
+"jpg" ns-image register-image-class
+"jpeg" ns-image register-image-class
+"bmp" ns-image register-image-class
+"ico" ns-image register-image-class
CONSTANT: NSImageRepLoadStatusUnknownType -1
CONSTANT: NSImageRepLoadStatusReadingHeader -2
f >>upside-down? ;
M: ns-image stream>image
- drop [ load-image-rep ] with-input-stream image-rep>image ;
+ drop
+ dup limited-stream? [ stream-eofs >>mode ] when
+ [ load-image-rep ] with-input-stream image-rep>image ;