parent
56217afcbb
commit
c10c5f5736
|
@ -0,0 +1,6 @@
|
|||
USING: help.markup help.syntax math ;
|
||||
IN: images
|
||||
|
||||
HELP: rowstride
|
||||
{ $values { "image" image } { "n" integer } }
|
||||
{ $description "Returns an images rowstride metric." } ;
|
|
@ -27,3 +27,8 @@ IN: images.tests
|
|||
0 0 0 0
|
||||
0 0 0 0
|
||||
} } [ set-pixel-at ] keep bitmap>> ] unit-test
|
||||
|
||||
{ 40 30 } [
|
||||
T{ image f { 10 3 } RGBA ubyte-components f f } rowstride
|
||||
T{ image f { 10 3 } RGB ubyte-components f f } rowstride
|
||||
] unit-test
|
||||
|
|
|
@ -135,6 +135,9 @@ TUPLE: image
|
|||
: bytes-per-image ( image -- n )
|
||||
[ dim>> product ] [ bytes-per-pixel ] bi * ;
|
||||
|
||||
: rowstride ( image -- n )
|
||||
[ dim>> first ] [ bytes-per-pixel ] bi * ;
|
||||
|
||||
<PRIVATE
|
||||
|
||||
:: pixel@ ( x y w image -- start end bitmap )
|
||||
|
@ -164,4 +167,3 @@ PRIVATE>
|
|||
|
||||
: set-pixel-at ( pixel x y image -- )
|
||||
[ 1 ] dip set-pixel-row-at ; inline
|
||||
|
||||
|
|
|
@ -60,18 +60,12 @@ CONSTANT: bits>components {
|
|||
f >>premultiplied-alpha?
|
||||
f >>upside-down? ;
|
||||
|
||||
: bits-per-sample ( image -- bits )
|
||||
component-type>> bits>components value-at ;
|
||||
|
||||
: rowstride ( image -- rowstride )
|
||||
[ dim>> first ] [ bits-per-sample 8 / ] [ has-alpha? 4 3 ? ] tri * * ;
|
||||
|
||||
: image>GdkPixbuf ( image -- GdkPixbuf )
|
||||
{
|
||||
[ bitmap>> ]
|
||||
[ drop GDK_COLORSPACE_RGB ]
|
||||
[ has-alpha? ]
|
||||
[ bits-per-sample ]
|
||||
[ bytes-per-component 8 * ]
|
||||
[ dim>> first2 ]
|
||||
[ rowstride ]
|
||||
} cleave f f gdk_pixbuf_new_from_data ;
|
||||
|
|
Loading…
Reference in New Issue