Skip to content

Naive Go binding to GraphicsMagick's MagickWand C API

License

Notifications You must be signed in to change notification settings

top4music/gmagick

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Go bindings for GraphicsMagick

Install GraphicsMagick libraries and header files

Windows

pacman -S mingw-w64-x86_64-gcc
pacman -S mingw-w64-x86_64-zlib
pacman -S mingw-w64-x86_64-pkg-config
pacman -S mingw-w64-x86_64-graphicsmagick
  • Add following environment variable:
set PATH=<msys64>\mingw64\bin;%PATH%
set PKG_CONFIG_PATH=<msys64>\mingw64\lib\pkgconfig
set MAGICK_CODER_MODULE_PATH=<msys64>\mingw64\lib\GraphicsMagick-1.3.25\modules-Q8\coders

(BTW: you should change <msys64> to your installation path of msys2)

MacOS

Install GraphicsMagick using Homebrew or MacPorts
An example of MacPorts:

  • sudo port install graphicsmagick
  • export PKG_CONFIG_PATH=/opt/local/lib/pkgconfig

CentOS

  • ensure epel-release was installed. (help)
  • yum install GraphicsMagick-devel

Ubuntu

  • sudo apt-get install libgraphicsmagick1-dev

Install golang bindings

  • go get github.com/gographics/gmagick

Example

package main

import (
    "flag"
    "github.com/gographics/gmagick"
)

func resize(orig string, dest string) {
    mw := gmagick.NewMagickWand()
    defer mw.Destroy()
    mw.ReadImage(orig)
    filter := gmagick.FILTER_LANCZOS
    w := mw.GetImageWidth()
    h := mw.GetImageHeight()
    mw.ResizeImage(w/2, h/2, filter, 1)
    mw.WriteImage(dest)
}

func main() {
    f := flag.String("from", "", "original image file ...")
    t := flag.String("to", "", "target file ...")
    flag.Parse()

    gmagick.Initialize()
    defer gmagick.Terminate()

    resize(*f, *t)
}

====================================================

Todo List

  • CloneMagickWand
  • ClonePixelWand
  • ClonePixelWands
  • CopyMagickString
  • DestroyMagickWand
  • DestroyPixelWand
  • FormatMagickString
  • FormatMagickStringList
  • MagickAdaptiveThresholdImage
  • MagickAddImage
  • MagickAddNoiseImage
  • MagickAffineTransformImage
  • MagickAnimateImages
  • MagickAnnotateImage
  • MagickAppendImages
  • MagickAverageImages
  • MagickBlackThresholdImage
  • MagickBlurImage
  • MagickBorderImage
  • MagickCdlImage
  • MagickCharcoalImage
  • MagickChopImage
  • MagickClipImage
  • MagickClipPathImage
  • MagickCloneDrawingWand
  • MagickCoalesceImages
  • MagickColorFloodfillImage
  • MagickColorizeImage
  • MagickCommentImage
  • MagickCompareImageChannels
  • MagickCompareImages
  • MagickCompositeImage
  • MagickContrastImage
  • MagickConvolveImage
  • MagickCropImage
  • MagickCycleColormapImage
  • MagickDeconstructImages
  • MagickDescribeImage
  • MagickDespeckleImage
  • MagickDestroyDrawingWand
  • MagickDisplayImage
  • MagickDisplayImages
  • MagickDrawAffine
  • MagickDrawAllocateWand
  • MagickDrawAnnotation
  • MagickDrawArc
  • MagickDrawBezier
  • MagickDrawCircle
  • MagickDrawClearException
  • MagickDrawColor
  • MagickDrawComment
  • MagickDrawComposite
  • MagickDrawEllipse
  • MagickDrawGetClipPath
  • MagickDrawGetClipRule
  • MagickDrawGetClipUnits
  • MagickDrawGetException
  • MagickDrawGetFillColor
  • MagickDrawGetFillOpacity
  • MagickDrawGetFillRule
  • MagickDrawGetFontFamily
  • MagickDrawGetFont
  • MagickDrawGetFontSize
  • MagickDrawGetFontStretch
  • MagickDrawGetFontStyle
  • MagickDrawGetFontWeight
  • MagickDrawGetGravity
  • MagickDrawGetStrokeAntialias
  • MagickDrawGetStrokeColor
  • MagickDrawGetStrokeDashArray
  • MagickDrawGetStrokeDashOffset
  • MagickDrawGetStrokeLineCap
  • MagickDrawGetStrokeLineJoin
  • MagickDrawGetStrokeMiterLimit
  • MagickDrawGetStrokeOpacity
  • MagickDrawGetStrokeWidth
  • MagickDrawGetTextAntialias
  • MagickDrawGetTextDecoration
  • MagickDrawGetTextEncoding
  • MagickDrawGetTextUnderColor
  • MagickDrawImage
  • MagickDrawLine
  • MagickDrawMatte
  • MagickDrawPathClose
  • MagickDrawPathCurveToAbsolute
  • MagickDrawPathCurveToQuadraticBezierAbsolute
  • MagickDrawPathCurveToQuadraticBezierRelative
  • MagickDrawPathCurveToQuadraticBezierSmoothAbsolute
  • MagickDrawPathCurveToQuadraticBezierSmoothRelative
  • MagickDrawPathCurveToRelative
  • MagickDrawPathCurveToSmoothAbsolute
  • MagickDrawPathCurveToSmoothRelative
  • MagickDrawPathEllipticArcAbsolute
  • MagickDrawPathEllipticArcRelative
  • MagickDrawPathFinish
  • MagickDrawPathLineToAbsolute
  • MagickDrawPathLineToHorizontalAbsolute
  • MagickDrawPathLineToHorizontalRelative
  • MagickDrawPathLineToRelative
  • MagickDrawPathLineToVerticalAbsolute
  • MagickDrawPathLineToVerticalRelative
  • MagickDrawPathMoveToAbsolute
  • MagickDrawPathMoveToRelative
  • MagickDrawPathStart
  • MagickDrawPeekGraphicContext
  • MagickDrawPoint
  • MagickDrawPolygon
  • MagickDrawPolyline
  • MagickDrawPopClipPath
  • MagickDrawPopDefs
  • MagickDrawPopGraphicContext
  • MagickDrawPopPattern
  • MagickDrawPushClipPath
  • MagickDrawPushDefs
  • MagickDrawPushGraphicContext
  • MagickDrawPushPattern
  • MagickDrawRectangle
  • MagickDrawRender(deprecated)
  • MagickDrawRotate
  • MagickDrawRoundRectangle
  • MagickDrawScale
  • MagickDrawSetClipPath
  • MagickDrawSetClipRule
  • MagickDrawSetClipUnits
  • MagickDrawSetFillColor
  • MagickDrawSetFillOpacity
  • MagickDrawSetFillPatternURL
  • MagickDrawSetFillRule
  • MagickDrawSetFontFamily
  • MagickDrawSetFont
  • MagickDrawSetFontSize
  • MagickDrawSetFontStretch
  • MagickDrawSetFontStyle
  • MagickDrawSetFontWeight
  • MagickDrawSetGravity
  • MagickDrawSetStrokeAntialias
  • MagickDrawSetStrokeColor
  • MagickDrawSetStrokeDashArray
  • MagickDrawSetStrokeDashOffset
  • MagickDrawSetStrokeLineCap
  • MagickDrawSetStrokeLineJoin
  • MagickDrawSetStrokeMiterLimit
  • MagickDrawSetStrokeOpacity
  • MagickDrawSetStrokePatternURL
  • MagickDrawSetStrokeWidth
  • MagickDrawSetTextAntialias
  • MagickDrawSetTextDecoration
  • MagickDrawSetTextEncoding
  • MagickDrawSetTextUnderColor
  • MagickDrawSetViewbox
  • MagickDrawSkewX
  • MagickDrawSkewY
  • MagickDrawTranslate
  • MagickEdgeImage
  • MagickEmbossImage
  • MagickEnhanceImage
  • MagickEqualizeImage
  • MagickExtentImage
  • MagickFlattenImages
  • MagickFlipImage
  • MagickFlopImage
  • MagickFrameImage
  • MagickFxImageChannel
  • MagickFxImage
  • MagickGammaImageChannel
  • MagickGammaImage
  • MagickGetConfigureInfo
  • MagickGetCopyright
  • MagickGetException
  • MagickGetFilename
  • MagickGetHomeURL
  • MagickGetImageAttribute
  • MagickGetImageBackgroundColor
  • MagickGetImageBluePrimary
  • MagickGetImageBorderColor
  • MagickGetImageBoundingBox
  • MagickGetImageChannelDepth
  • MagickGetImageChannelExtrema
  • MagickGetImageChannelMean
  • MagickGetImageColormapColor
  • MagickGetImageColors
  • MagickGetImageColorspace
  • MagickGetImageCompose
  • MagickGetImageCompression
  • MagickGetImageDelay
  • MagickGetImageDepth
  • MagickGetImageDispose
  • MagickGetImageExtrema
  • MagickGetImageFilename
  • MagickGetImageFormat
  • MagickGetImageFuzz
  • MagickGetImageGamma
  • MagickGetImageGeometry
  • MagickGetImageGravity
  • MagickGetImage
  • MagickGetImageGreenPrimary
  • MagickGetImageHeight
  • MagickGetImageHistogram
  • MagickGetImageIndex
  • MagickGetImageInterlaceScheme
  • MagickGetImageIterations
  • MagickGetImageMatte
  • MagickGetImageMatteColor
  • MagickGetImagePage
  • MagickGetImagePixels
  • MagickGetImageProfile
  • MagickGetImageRedPrimary
  • MagickGetImageRenderingIntent
  • MagickGetImageResolution
  • MagickGetImageSavedType
  • MagickGetImageScene
  • MagickGetImageSignature
  • MagickGetImageSize
  • MagickGetImageType
  • MagickGetImageUnits
  • MagickGetImageVirtualPixelMethod
  • MagickGetImageWhitePoint
  • MagickGetImageWidth
  • MagickGetNumberImages
  • MagickGetPackageName
  • MagickGetQuantumDepth
  • MagickGetReleaseDate
  • MagickGetResourceLimit
  • MagickGetSamplingFactors
  • MagickGetSize
  • MagickGetVersion
  • MagickHaldClutImage
  • MagickHasNextImage
  • MagickHasPreviousImage
  • MagickImplodeImage
  • MagickLabelImage
  • MagickLevelImageChannel
  • MagickLevelImage
  • MagickMagnifyImage
  • MagickMapImage
  • MagickMatteFloodfillImage
  • MagickMedianFilterImage
  • MagickMinifyImage
  • MagickModulateImage
  • MagickMontageImage
  • MagickMorphImages
  • MagickMosaicImages
  • MagickMotionBlurImage
  • MagickNegateImageChannel
  • MagickNegateImage
  • MagickNewDrawingWand
  • MagickNextImage
  • MagickNormalizeImage
  • MagickOilPaintImage
  • MagickOpaqueImage
  • MagickPingImage
  • MagickPreviewImages
  • MagickPreviousImage
  • MagickProfileImage
  • MagickQuantizeImage
  • MagickQuantizeImages
  • MagickQueryFontMetrics
  • MagickQueryFonts
  • MagickQueryFormats
  • MagickRadialBlurImage
  • MagickRaiseImage
  • MagickReadImageBlob
  • MagickReadImageFile
  • MagickReadImage
  • MagickReduceNoiseImage
  • MagickRelinquishMemory
  • MagickRemoveImage
  • MagickRemoveImageProfile
  • MagickResampleImage
  • MagickResetIterator
  • MagickResizeImage
  • MagickRollImage
  • MagickRotateImage
  • MagickSampleImage
  • MagickScaleImage
  • MagickSeparateImageChannel
  • MagickSetCompressionQuality
  • MagickSetDepth
  • MagickSetFilename
  • MagickSetFormat
  • MagickSetImageAttribute
  • MagickSetImageBackgroundColor
  • MagickSetImageBluePrimary
  • MagickSetImageBorderColor
  • MagickSetImageChannelDepth
  • MagickSetImageColormapColor
  • MagickSetImageColorspace
  • MagickSetImageCompose
  • MagickSetImageCompression
  • MagickSetImageDelay
  • MagickSetImageDepth
  • MagickSetImageDispose
  • MagickSetImageFilename
  • MagickSetImageFormat
  • MagickSetImageFuzz
  • MagickSetImageGamma
  • MagickSetImageGravity
  • MagickSetImage
  • MagickSetImageGreenPrimary
  • MagickSetImageIndex
  • MagickSetImageInterlaceScheme
  • MagickSetImageIterations
  • MagickSetImageMatte
  • MagickSetImageMatteColor
  • MagickSetImageOption
  • MagickSetImagePage
  • MagickSetImagePixels
  • MagickSetImageProfile
  • MagickSetImageRedPrimary
  • MagickSetImageRenderingIntent
  • MagickSetImageResolution
  • MagickSetImageSavedType
  • MagickSetImageScene
  • MagickSetImageType
  • MagickSetImageUnits
  • MagickSetImageVirtualPixelMethod
  • MagickSetImageWhitePoint
  • MagickSetInterlaceScheme
  • MagickSetPassphrase
  • MagickSetResolution
  • MagickSetResolutionUnits
  • MagickSetResourceLimit
  • MagickSetSamplingFactors
  • MagickSetSize
  • MagickSharpenImage
  • MagickShaveImage
  • MagickShearImage
  • MagickSolarizeImage
  • MagickSpreadImage
  • MagickSteganoImage
  • MagickStereoImage
  • MagickStripImage
  • MagickSwirlImage
  • MagickTextureImage
  • MagickThresholdImageChannel
  • MagickThresholdImage
  • MagickTintImage
  • MagickTransformImage
  • MagickTransparentImage
  • MagickTrimImage
  • MagickUnsharpMaskImage
  • MagickWaveImage
  • MagickWhiteThresholdImage
  • MagickWriteImageBlob
  • MagickWriteImageFile
  • MagickWriteImage
  • MagickWriteImagesFile
  • MagickWriteImages
  • NewMagickWand
  • NewPixelWand
  • NewPixelWands
  • PixelGetBlack
  • PixelGetBlackQuantum
  • PixelGetBlue
  • PixelGetBlueQuantum
  • PixelGetColorAsString
  • PixelGetColorCount
  • PixelGetCyan
  • PixelGetCyanQuantum
  • PixelGetException
  • PixelGetGreen
  • PixelGetGreenQuantum
  • PixelGetMagenta
  • PixelGetMagentaQuantum
  • PixelGetOpacity
  • PixelGetOpacityQuantum
  • PixelGetQuantumColor
  • PixelGetRed
  • PixelGetRedQuantum
  • PixelGetYellow
  • PixelGetYellowQuantum
  • PixelSetBlack
  • PixelSetBlackQuantum
  • PixelSetBlue
  • PixelSetBlueQuantum
  • PixelSetColorCount
  • PixelSetColor
  • PixelSetCyan
  • PixelSetCyanQuantum
  • PixelSetGreen
  • PixelSetGreenQuantum
  • PixelSetMagenta
  • PixelSetMagentaQuantum
  • PixelSetOpacity
  • PixelSetOpacityQuantum
  • PixelSetQuantumColor
  • PixelSetRed
  • PixelSetRedQuantum
  • PixelSetYellow
  • PixelSetYellowQuantum
  • QueryMagickColor

About

Naive Go binding to GraphicsMagick's MagickWand C API

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Go 100.0%