gd-3000.7.3: A Haskell binding to a subset of the GD graphics library

Safe HaskellNone
LanguageHaskell98

Graphics.GD

Contents

Synopsis

Types

data Image #

type Size = (Int, Int) #

type Point = (Int, Int) #

type Color = CInt #

newtype PCREOption #

To access the definition gdBrush from GD

Constructors

PCREOption 

Fields

Creating and copying images

newImage :: Size -> IO Image #

Create a new empty image.

copyImage :: Image -> IO Image #

Make a copy of an image.

copyRegion #

Arguments

:: Point

Source upper left-hand corner

-> Size

Size of copied region

-> Image

Source image

-> Point

Destination upper left-hand corner

-> Image

Destination image

-> IO () 

Copy a region of one image into another

copyRegionScaled #

Arguments

:: Point

Source upper left-hand corner

-> Size

Size of source region

-> Image

Source image

-> Point

Destination upper left-hand corner

-> Size

Size of destination region

-> Image

Destination image

-> IO () 

Copy a region of one image into another, rescaling the region

Memory management

withImage #

Arguments

:: IO Image

Image creation action.

-> (Image -> IO b)

Some operation on the image. The result should not reference the Image.

-> IO b 

Creates an image, performs an operation on the image, and frees it. This function allows block scoped management of Image objects. If you are handling large images, the delay before the finalizer which frees the image runs may cause significant temporary extra memory use. Use this function to force the image to be freed as soons as you are done with it. Note that it is unsafe to hold on to the Image after the function is done.

Loading images

JPEG

loadJpegFile :: FilePath -> IO Image #

Load a JPEG image from a file.

loadJpegData #

Arguments

:: Int

Buffer size.

-> Ptr a

Buffer with image data.

-> IO Image 

Load a JPEG image from a buffer.

loadJpegByteString :: ByteString -> IO Image #

Load a JPEG image from a ByteString

PNG

loadPngFile :: FilePath -> IO Image #

Load a PNG image from a file.

loadPngData #

Arguments

:: Int

Buffer size.

-> Ptr a

Buffer with image data.

-> IO Image 

Load a PNG image from a buffer.

loadPngByteString :: ByteString -> IO Image #

Load a PNG image from a ByteString

GIF

loadGifFile :: FilePath -> IO Image #

Load a GIF image from a file.

loadGifData #

Arguments

:: Int

Buffer size.

-> Ptr a

Buffer with image data.

-> IO Image 

Load a GIF image from a buffer.

loadGifByteString :: ByteString -> IO Image #

Load a GIF image from a ByteString

Saving images

JPEG

saveJpegFile #

Arguments

:: Int

quality: 0-95, or negative for default quality.

-> FilePath 
-> Image 
-> IO () 

Save an image as a JPEG file.

saveJpegByteString :: Int -> Image -> IO ByteString #

Write a JPEG format ByteString of an image.

PNG

savePngFile :: FilePath -> Image -> IO () #

Save an image as a PNG file.

savePngByteString :: Image -> IO ByteString #

Write a PNG format ByteString of an image.

GIF

saveGifFile :: FilePath -> Image -> IO () #

Save an image as a GIF file.

saveGifByteString :: Image -> IO ByteString #

Write a GIF format ByteString of an image.

Getting image information

imageSize #

Arguments

:: Image 
-> IO (Int, Int)

(width, height)

Get the size of an image.

Querying

getPixel :: (Int, Int) -> Image -> IO Color #

Retrieves the color index or the color values of a particular pixel.

Manipulating images

resizeImage #

Arguments

:: Int

width in pixels of output image

-> Int

height in pixels of output image

-> Image 
-> IO Image 

Resize an image to a give size.

rotateImage #

Arguments

:: Int

1 for 90 degrees counter-clockwise, 2 for 180 degrees, etc.

-> Image 
-> IO Image 

Rotate an image by a multiple of 90 degrees counter-clockwise.

Drawing

brushed :: PCREOption #

Special character for gdBrushed

setBrush #

Arguments

:: Image

Source image

-> Image

Brush

-> IO () 

Set an Image as a brush for an Image

fillImage :: Color -> Image -> IO () #

Fill the entire image with the given color.

drawFilledRectangle #

Arguments

:: Point

Upper left corner

-> Point

Lower right corner

-> Color 
-> Image 
-> IO () 

drawFilledEllipse #

Arguments

:: Point

Center

-> Size

Width and height

-> Color 
-> Image 
-> IO () 

drawLine #

Arguments

:: Point

Start

-> Point

End

-> Color 
-> Image 
-> IO () 

drawArc #

Arguments

:: Point

Center

-> Size

Width and height

-> Int

Starting position (degrees)

-> Int

Ending position (degrees)

-> Color 
-> Image 
-> IO () 

antiAliased :: (Color -> Image -> IO a) -> Color -> Image -> IO a #

Use anti-aliasing when performing the given drawing function. This can cause a segault with some gd versions.

setPixel :: Point -> Color -> Image -> IO () #

Text

useFontConfig :: Bool -> IO Bool #

Globally switch from using font file names to fontconfig paths | for fonts in drawString (and measureString).

drawString #

Arguments

:: String

Font name

-> Double

Font point size

-> Double

Angle in counterclockwise radians

-> Point

Origin

-> String

Text, including HTML entities

-> Color 
-> Image 
-> IO (Point, Point, Point, Point)

Bounding box of the drawn text.

Draw a string using the FreeType 2.x library

measureString #

Arguments

:: String

Font name

-> Double

Font point size

-> Double

Angle in counterclockwise radians

-> Point

Origin

-> String

Text, including HTML entities

-> Color 
-> IO (Point, Point, Point, Point)

Bounding box of the drawn text

Measure a string using the FreeType 2.x library. This computes the bounding box but does not actually draw the string to any image.

drawStringCircle #

Arguments

:: Point

Center of text path circle

-> Double

Outer radius of text

-> Double

Fraction of radius occupied by text

-> Double

Portion of circle arc filled by text

-> String

Font name

-> Double

Font size hint

-> String

Text to write on the top of the circle

-> String

Text to write on the bottom of the circle

-> Color

Text color

-> Image 
-> IO () 

Draw strings around the top and bottom of a torus

Colors

rgb #

Arguments

:: Int

Red (0-255)

-> Int

Green (0-255)

-> Int

Blue (0-255)

-> Color 

rgba #

Arguments

:: Int

Red (0-255)

-> Int

Green (0-255)

-> Int

Blue (0-255)

-> Int

Alpha (0-127), 0 is opaque, 127 is transparent

-> Color 

toRGBA :: Color -> (Int, Int, Int, Int) #

Misc

saveAlpha :: Bool -> Image -> IO () #