Text.Pandoc.ImageSize

pandoc-3.7.0.2: Conversion between markup formats

Copyright | Copyright (C) 2011-2024 John MacFarlane
License | GNU GPL, version 2 or above
Maintainer | John MacFarlane <jgm@berkeley.edu>
Stability | alpha
Portability | portable
Safe Haskell | None
Language | Haskell2010

Text.Pandoc.ImageSize

Description

Functions for determining the size of a PNG, JPEG, or GIF image.

Synopsis

- data ImageType
  - = Png
  - | Gif
  - | Jpeg
  - | Svg
  - | Pdf
  - | Eps
  - | Emf
  - | Tiff
  - | Webp
- data ImageSize = ImageSize {
  - pxX :: Integer
  - pxY :: Integer
  - dpiX :: Integer
  - dpiY :: Integer
  }
- imageType :: ByteString -> Maybe ImageType
- imageSize :: WriterOptions -> ByteString -> Either Text ImageSize
- sizeInPixels :: ImageSize -> (Integer, Integer)
- sizeInPoints :: ImageSize -> (Double, Double)
- desiredSizeInPoints :: WriterOptions -> Attr -> ImageSize -> (Double, Double)
- data Dimension
  - = Pixel Integer
  - | Centimeter Double
  - | Millimeter Double
  - | Inch Double
  - | Percent Double
  - | Em Double
- data Direction
  - = Width
  - | Height
- dimension :: Direction -> Attr -> Maybe Dimension
- lengthToDim :: Text -> Maybe Dimension
- scaleDimension :: Double -> Dimension -> Dimension
- inInch :: WriterOptions -> Dimension -> Double
- inPixel :: WriterOptions -> Dimension -> Integer
- inPoints :: WriterOptions -> Dimension -> Double
- inEm :: WriterOptions -> Dimension -> Double
- numUnit :: Text -> Maybe (Double, Text)
- showInInch :: WriterOptions -> Dimension -> Text
- showInPixel :: WriterOptions -> Dimension -> Text
- showFl :: RealFloat a => a -> Text

# Documentation

data ImageType #

Constructors

Png |
Gif |
Jpeg |
Svg |
Pdf |
Eps |
Emf |
Tiff |
Webp |

#### Instances

Instances details

Show ImageType # |
Instance details Defined in Text.Pandoc.ImageSize Methods showsPrec :: Int -> ImageType -> ShowS # show :: ImageType -> String # showList :: [ImageType] -> ShowS #

data ImageSize #

Constructors

ImageSize |
Fields pxX :: Integer pxY :: Integer dpiX :: Integer dpiY :: Integer

#### Instances

Instances details

Default ImageSize # |
Instance details Defined in Text.Pandoc.ImageSize Methods def :: ImageSize #
Read ImageSize # |
Instance details Defined in Text.Pandoc.ImageSize Methods readsPrec :: Int -> ReadS ImageSize # readList :: ReadS [ImageSize] # readPrec :: ReadPrec ImageSize # readListPrec :: ReadPrec [ImageSize] #
Show ImageSize # |
Instance details Defined in Text.Pandoc.ImageSize Methods showsPrec :: Int -> ImageSize -> ShowS # show :: ImageSize -> String # showList :: [ImageSize] -> ShowS #
Eq ImageSize # |
Instance details Defined in Text.Pandoc.ImageSize Methods (==) :: ImageSize -> ImageSize -> Bool # (/=) :: ImageSize -> ImageSize -> Bool #

imageType :: ByteString -> Maybe ImageType #

imageSize :: WriterOptions -> ByteString -> Either Text ImageSize #

sizeInPixels :: ImageSize -> (Integer, Integer) #

sizeInPoints :: ImageSize -> (Double, Double) #

Calculate (height, width) in points using the image file's dpi metadata, using 72 Points == 1 Inch.

desiredSizeInPoints :: WriterOptions -> Attr -> ImageSize -> (Double, Double) #

Calculate (height, width) in points, considering the desired dimensions in the attribute, while falling back on the image file's dpi metadata if no dimensions are specified in the attribute (or only dimensions in percentages).

data Dimension #

Constructors

Pixel Integer |
Centimeter Double |
Millimeter Double |
Inch Double |
Percent Double |
Em Double |

#### Instances

Instances details

Show Dimension # |
Instance details Defined in Text.Pandoc.ImageSize Methods showsPrec :: Int -> Dimension -> ShowS # show :: Dimension -> String # showList :: [Dimension] -> ShowS #
Eq Dimension # |
Instance details Defined in Text.Pandoc.ImageSize Methods (==) :: Dimension -> Dimension -> Bool # (/=) :: Dimension -> Dimension -> Bool #

data Direction #

Constructors

Width |
Height |

#### Instances

Instances details

Show Direction # |
Instance details Defined in Text.Pandoc.ImageSize Methods showsPrec :: Int -> Direction -> ShowS # show :: Direction -> String # showList :: [Direction] -> ShowS #

dimension :: Direction -> Attr -> Maybe Dimension #

Read a Dimension from an Attr attribute. `dimension Width attr` might return `Just (Pixel 3)` or for example `Just (Centimeter 2.0)`, etc.

lengthToDim :: Text -> Maybe Dimension #

scaleDimension :: Double -> Dimension -> Dimension #

Scale a dimension by a factor.

inInch :: WriterOptions -> Dimension -> Double #

inPixel :: WriterOptions -> Dimension -> Integer #

inPoints :: WriterOptions -> Dimension -> Double #

inEm :: WriterOptions -> Dimension -> Double #

numUnit :: Text -> Maybe (Double, Text) #

Maybe split a string into a leading number and trailing unit, e.g. "3cm" to Just (3.0, "cm")

showInInch :: WriterOptions -> Dimension -> Text #

Convert a Dimension to Text denoting its equivalent in inches, for example "2.00000". Note: Dimensions in percentages are converted to the empty string.

showInPixel :: WriterOptions -> Dimension -> Text #

Convert a Dimension to Text denoting its equivalent in pixels, for example "600". Note: Dimensions in percentages are converted to the empty string.

showFl :: RealFloat a => a -> Text #