-
Notifications
You must be signed in to change notification settings - Fork 0
/
Extra.purs
31 lines (22 loc) · 964 Bytes
/
Extra.purs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
module Graphics.Canvas.Extra
( newOffScreenCanvas
, JpegQuality(..)
, convertToJpegBlob
, canvasImageSourceWidth
, canvasImageSourceHeight
) where
import Prelude
import Control.Promise (Promise, toAffE)
import Effect (Effect)
import Effect.Aff (Aff)
import Graphics.Canvas (CanvasElement, CanvasImageSource, Dimensions)
import Web.File.Blob (Blob)
foreign import _newOffScreenCanvas :: Number -> Number -> Effect CanvasElement
newOffScreenCanvas :: Dimensions -> Effect CanvasElement
newOffScreenCanvas d = _newOffScreenCanvas d.width d.height
foreign import _convertToJpegBlob :: CanvasElement -> Number -> Effect (Promise Blob)
newtype JpegQuality = JpegQuality Number
convertToJpegBlob :: CanvasElement -> JpegQuality -> Aff Blob
convertToJpegBlob c (JpegQuality q) = toAffE $ _convertToJpegBlob c q
foreign import canvasImageSourceWidth :: CanvasImageSource -> Number
foreign import canvasImageSourceHeight :: CanvasImageSource -> Number