Words in images to get and set pixels
parent
8d82741d55
commit
29395bf900
|
@ -1 +1,2 @@
|
|||
Doug Coleman
|
||||
Doug Coleman
|
||||
Daniel Ehrenberg
|
||||
|
|
|
@ -0,0 +1,29 @@
|
|||
! Copyright (C) 2009 Daniel Ehrenberg.
|
||||
! See http://factorcode.org/license.txt for BSD license.
|
||||
USING: images tools.test kernel accessors ;
|
||||
IN: images.tests
|
||||
|
||||
[ B{ 57 57 57 255 } ] [ 1 1 T{ image f { 2 3 } RGBA f B{
|
||||
0 0 0 0
|
||||
0 0 0 0
|
||||
0 0 0 0
|
||||
0 0 0 0
|
||||
57 57 57 255
|
||||
0 0 0 0
|
||||
} } pixel-at ] unit-test
|
||||
|
||||
[ B{
|
||||
0 0 0 0
|
||||
0 0 0 0
|
||||
0 0 0 0
|
||||
0 0 0 0
|
||||
57 57 57 255
|
||||
0 0 0 0
|
||||
} ] [ B{ 57 57 57 255 } 1 1 T{ image f { 2 3 } RGBA f B{
|
||||
0 0 0 0
|
||||
0 0 0 0
|
||||
0 0 0 0
|
||||
0 0 0 0
|
||||
0 0 0 0
|
||||
0 0 0 0
|
||||
} } [ set-pixel-at ] keep bitmap>> ] unit-test
|
|
@ -1,6 +1,6 @@
|
|||
! Copyright (C) 2009 Doug Coleman.
|
||||
! Copyright (C) 2009 Doug Coleman, Daniel Ehrenberg.
|
||||
! See http://factorcode.org/license.txt for BSD license.
|
||||
USING: combinators kernel accessors ;
|
||||
USING: combinators kernel accessors sequences math ;
|
||||
IN: images
|
||||
|
||||
SINGLETONS: L LA BGR RGB BGRA RGBA ABGR ARGB RGBX XRGB BGRX XBGR
|
||||
|
@ -35,3 +35,21 @@ TUPLE: image dim component-order upside-down? bitmap ;
|
|||
: has-alpha? ( image -- ? ) component-order>> alpha-channel? ;
|
||||
|
||||
GENERIC: load-image* ( path tuple -- image )
|
||||
|
||||
<PRIVATE
|
||||
|
||||
: pixel@ ( x y image -- start end bitmap )
|
||||
[ dim>> second * + ]
|
||||
[ component-order>> bytes-per-pixel [ * dup ] keep + ]
|
||||
[ bitmap>> ] tri ;
|
||||
|
||||
: set-subseq ( new-value from to victim -- )
|
||||
<slice> 0 swap copy ; inline
|
||||
|
||||
PRIVATE>
|
||||
|
||||
: pixel-at ( x y image -- pixel )
|
||||
pixel@ subseq ;
|
||||
|
||||
: set-pixel-at ( pixel x y image -- )
|
||||
pixel@ set-subseq ;
|
||||
|
|
Loading…
Reference in New Issue