]> gitweb.factorcode.org Git - factor.git/commitdiff
Merge branch 'png' of git://github.com/klazuka/factor
authorDoug Coleman <doug.coleman@gmail.com>
Mon, 28 Sep 2009 19:29:00 +0000 (14:29 -0500)
committerDoug Coleman <doug.coleman@gmail.com>
Mon, 28 Sep 2009 19:29:00 +0000 (14:29 -0500)
basis/images/png/png.factor

index 88ec97aadf9d1fc90ac696f6a021902e094e4f8b..5746a9098b2070a88635f30a65ae3fa1bf93558a 100755 (executable)
@@ -125,23 +125,23 @@ ERROR: unimplemented-color-type image ;
 : png-image-bytes ( loading-png -- byte-array )
     [ png-bytes-per-pixel ] [ inflate-data ] [ png-group-width ] tri group reverse-png-filter ;
 
-: decode-greyscale ( loading-png -- loading-png )
+: decode-greyscale ( loading-png -- image )
     unimplemented-color-type ;
 
-: decode-truecolor ( loading-png -- loading-png )
+: decode-truecolor ( loading-png -- image )
     [ <image> ] dip {
         [ png-image-bytes >>bitmap ]
         [ [ width>> ] [ height>> ] bi 2array >>dim ]
         [ drop RGB >>component-order ubyte-components >>component-type ]
     } cleave ;
     
-: decode-indexed-color ( loading-png -- loading-png )
+: decode-indexed-color ( loading-png -- image )
     unimplemented-color-type ;
 
-: decode-greyscale-alpha ( loading-png -- loading-png )
+: decode-greyscale-alpha ( loading-png -- image )
     unimplemented-color-type ;
 
-: decode-truecolor-alpha ( loading-png -- loading-png )
+: decode-truecolor-alpha ( loading-png -- image )
     [ <image> ] dip {
         [ png-image-bytes >>bitmap ]
         [ [ width>> ] [ height>> ] bi 2array >>dim ]
@@ -169,7 +169,7 @@ ERROR: invalid-color-type/bit-depth loading-png ;
 : validate-truecolor-alpha ( loading-png -- loading-png )
     { 8 16 } validate-bit-depth ;
 
-: decode-png ( loading-png -- loading-png ) 
+: png>image ( loading-png -- image )
     dup color-type>> {
         { greyscale [ validate-greyscale decode-greyscale ] }
         { truecolor [ validate-truecolor decode-truecolor ] }
@@ -179,11 +179,13 @@ ERROR: invalid-color-type/bit-depth loading-png ;
         [ unknown-color-type ]
     } case ;
 
-M: png-image stream>image
-    drop [
+: load-png ( stream -- loading-png )
+    [
         <loading-png>
         read-png-header
         read-png-chunks
         parse-ihdr-chunk
-        decode-png
     ] with-input-stream ;
+
+M: png-image stream>image
+    drop load-png png>image ;