Skip to content

Commit e1da5d9

Browse files
committed
Merge pull request #28 from asolove/expose-image-data
Expose the information in the ImageData type.
2 parents 8a9c7d8 + aead03a commit e1da5d9

File tree

3 files changed

+5
-37
lines changed

3 files changed

+5
-37
lines changed

bower.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
"purescript-eff": "^0.1.0",
2424
"purescript-functions": "^0.1.0",
2525
"purescript-maybe": "^0.3.0",
26-
"purescript-exceptions": "^0.3.1"
26+
"purescript-exceptions": "^0.3.1",
27+
"purescript-arraybuffer-types": "^0.2.0"
2728
}
2829
}

src/Graphics/Canvas.js

Lines changed: 0 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -446,24 +446,6 @@ exports.createImageDataCopy = function(ctx) {
446446
};
447447
};
448448

449-
exports.getImageDataWidth = function(image_data) {
450-
return function() {
451-
return image_data.width;
452-
};
453-
};
454-
455-
exports.getImageDataHeight = function(image_data) {
456-
return function() {
457-
return image_data.height;
458-
};
459-
};
460-
461-
exports.getImageDataPixelArray = function(image_data) {
462-
return function() {
463-
return image_data.data;
464-
};
465-
};
466-
467449
exports.drawImage = function(ctx) {
468450
return function(image_source) {
469451
return function(dx) {

src/Graphics/Canvas.purs

Lines changed: 3 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@ module Graphics.Canvas
66
, CanvasElement()
77
, Context2D()
88
, ImageData()
9-
, CanvasPixelArray()
109
, CanvasImageSource()
1110
, Arc()
1211
, Composite(..)
@@ -82,9 +81,6 @@ module Graphics.Canvas
8281

8382
, withImage
8483
, getImageData
85-
, getImageDataWidth
86-
, getImageDataHeight
87-
, getImageDataPixelArray
8884
, putImageData
8985
, putImageDataFull
9086
, createImageData
@@ -106,6 +102,7 @@ module Graphics.Canvas
106102

107103
import Prelude
108104

105+
import Data.ArrayBuffer.Types
109106
import Data.Function
110107
import Data.Maybe
111108
import Control.Monad.Eff
@@ -121,10 +118,7 @@ foreign import data CanvasElement :: *
121118
foreign import data Context2D :: *
122119

123120
-- | An image data object, used to store raster data outside the canvas.
124-
foreign import data ImageData :: *
125-
126-
-- | An array of pixel data.
127-
foreign import data CanvasPixelArray :: *
121+
type ImageData = { width :: Int, height :: Int, data :: Uint8ClampedArray }
128122

129123
-- | Opaque object for drawing elements and things to the canvas.
130124
foreign import data CanvasImageSource :: *
@@ -462,7 +456,7 @@ foreign import getImageData :: forall eff. Context2D -> Number -> Number -> Numb
462456
-- | Set image data for a portion of the canvas.
463457
foreign import putImageDataFull :: forall eff. Context2D -> ImageData -> Number -> Number -> Number -> Number -> Number -> Number -> Eff (canvas :: Canvas | eff) Context2D
464458

465-
-- | Get image data for a portion of the canvas.
459+
-- | Set image data for a portion of the canvas.
466460
foreign import putImageData :: forall eff. Context2D -> ImageData -> Number -> Number -> Eff (canvas :: Canvas | eff) Context2D
467461

468462
-- | Create an image data object.
@@ -471,15 +465,6 @@ foreign import createImageData :: forall eff. Context2D -> Number -> Number -> E
471465
-- | Create a copy of an image data object.
472466
foreign import createImageDataCopy :: forall eff. Context2D -> ImageData -> Eff (canvas :: Canvas | eff) ImageData
473467

474-
-- | Get the width of an image data object in pixels.
475-
foreign import getImageDataWidth :: forall eff. ImageData -> Eff (canvas :: Canvas | eff) Number
476-
477-
-- | Get the height of an image data object in pixels.
478-
foreign import getImageDataHeight :: forall eff. ImageData -> Eff (canvas :: Canvas | eff) Number
479-
480-
-- | Get the pixel data array from an image data object.
481-
foreign import getImageDataPixelArray :: forall eff. ImageData -> Eff (canvas :: Canvas | eff) CanvasPixelArray
482-
483468
foreign import drawImage :: forall eff. Context2D -> CanvasImageSource -> Number -> Number -> Eff (canvas :: Canvas | eff) Context2D
484469

485470
foreign import drawImageScale :: forall eff. Context2D -> CanvasImageSource -> Number -> Number -> Number -> Number -> Eff (canvas :: Canvas | eff) Context2D

0 commit comments

Comments
 (0)