Skip to content

Commit 10ef11a

Browse files
committed
Merge pull request #5 from jdeseno/image-data
get/put ImageData
2 parents a032001 + 5c83b41 commit 10ef11a

File tree

1 file changed

+51
-0
lines changed

1 file changed

+51
-0
lines changed

src/Graphics/Canvas.purs

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@ foreign import data CanvasElement :: *
88

99
foreign import data Context2D :: *
1010

11+
foreign import data ImageData :: *
12+
1113
foreign import getCanvasElementById
1214
"function getCanvasElementById(id) {\
1315
\ return function() {\
@@ -463,3 +465,52 @@ withContext ctx action = do
463465
restore ctx
464466
return a
465467

468+
foreign import getImageData
469+
"function getImageData(ctx) {\
470+
\ return function(x) {\
471+
\ return function(y) {\
472+
\ return function(w) {\
473+
\ return function(h) {\
474+
\ return function() { return ctx.getImageData(x, y, w, h); };\
475+
\ };\
476+
\ };\
477+
\ };\
478+
\ };\
479+
\}" :: forall eff. Context2D -> Number -> Number -> Number -> Number -> Eff (canvas :: Canvas | eff) ImageData
480+
481+
foreign import putImageDataFull
482+
"function putImageDataFull(ctx) {\
483+
\ return function(image_data) {\
484+
\ return function(x) {\
485+
\ return function(y) {\
486+
\ return function(dx) {\
487+
\ return function(dy) {\
488+
\ return function(dw) {\
489+
\ return function(dh) {\
490+
\ return function() {\
491+
\ ctx.putImageData(image_data, x, y, dx, dy, dw, dh);\
492+
\ return ctx;\
493+
\ };\
494+
\ };\
495+
\ };\
496+
\ };\
497+
\ };\
498+
\ };\
499+
\ };\
500+
\ };\
501+
\}" :: forall eff. Context2D -> ImageData -> Number -> Number -> Number -> Number -> Number -> Number -> Eff (canvas :: Canvas | eff) Context2D
502+
503+
foreign import putImageData
504+
"function putImageData(ctx) {\
505+
\ return function(image_data) {\
506+
\ return function(x) {\
507+
\ return function(y) {\
508+
\ return function() {\
509+
\ ctx.putImageData(image_data, x, y);\
510+
\ return ctx;\
511+
\ };\
512+
\ };\
513+
\ };\
514+
\ };\
515+
\}" :: forall eff. Context2D -> ImageData -> Number -> Number -> Eff (canvas :: Canvas | eff) Context2D
516+

0 commit comments

Comments
 (0)