本文整理汇总了Golang中github.com/gographics/imagick/imagick.NewDrawingWand函数的典型用法代码示例。如果您正苦于以下问题:Golang NewDrawingWand函数的具体用法?Golang NewDrawingWand怎么用?Golang NewDrawingWand使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了NewDrawingWand函数的18个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Golang代码示例。
示例1: textEffect2
// Text effect 2 - tiled text using the builtin checkerboard pattern
// Anthony's Tiled Font effect
func textEffect2() {
imagick.Initialize()
defer imagick.Terminate()
mw := imagick.NewMagickWand()
defer mw.Destroy()
dw := imagick.NewDrawingWand()
defer dw.Destroy()
pw := imagick.NewPixelWand()
defer pw.Destroy()
setTilePattern(dw, "#check", "pattern:checkerboard")
pw.SetColor("lightblue")
// Create a new transparent image
mw.NewImage(320, 100, pw)
// Set up a 72 point font
dw.SetFont("Verdana-Bold-Italic")
dw.SetFontSize(72)
// Now draw the text
dw.Annotation(28, 68, "Magick")
// Draw the image on to the mw
mw.DrawImage(dw)
// Trim the image
mw.TrimImage(0)
// Add a transparent border
pw.SetColor("lightblue")
mw.BorderImage(pw, 5, 5)
// and write it
mw.WriteImage("text_pattern.png")
}
开发者ID:jabong,项目名称:imagick,代码行数:30,代码来源:main.go
示例2: main
func main() {
imagick.Initialize()
defer imagick.Terminate()
mw := imagick.NewMagickWand()
defer mw.Destroy()
lw := imagick.NewMagickWand()
defer lw.Destroy()
pw := imagick.NewPixelWand()
defer pw.Destroy()
dw := imagick.NewDrawingWand()
defer dw.Destroy()
// Create the initial 640x480 transparent canvas
pw.SetColor("none")
mw.NewImage(640, 480, pw)
pw.SetColor("white")
dw.SetFillColor(pw)
dw.RoundRectangle(15, 15, 624, 464, 15, 15)
mw.DrawImage(dw)
lw.ReadImage("logo:")
// Note that MagickSetImageCompose is usually only used for the MagickMontageImage
// function and isn't used or needed by MagickCompositeImage
mw.CompositeImage(lw, imagick.COMPOSITE_OP_SRC_IN, 0, 0)
/* Write the new image */
mw.WriteImage("mask_result.png")
}
开发者ID:palaiyacw,项目名称:imagick,代码行数:30,代码来源:main.go
示例3: textEffect3
// Text effect 3 - arc font (similar to http://www.imagemagick.org/Usage/fonts/#arc)
func textEffect3() {
imagick.Initialize()
defer imagick.Terminate()
mw := imagick.NewMagickWand()
defer mw.Destroy()
dw := imagick.NewDrawingWand()
defer dw.Destroy()
pw := imagick.NewPixelWand()
defer pw.Destroy()
// Create a 320x100 lightblue canvas
pw.SetColor("lightblue")
mw.NewImage(320, 100, pw)
// Set up a 72 point font
dw.SetFont("Verdana-Bold-Italic")
dw.SetFontSize(72)
// Now draw the text
dw.Annotation(25, 65, "Magick")
// Draw the image on to the mw
mw.DrawImage(dw)
mw.DistortImage(imagick.DISTORTION_ARC, dargs, false)
// Trim the image
mw.TrimImage(0)
// Add the border
pw.SetColor("lightblue")
mw.BorderImage(pw, 10, 10)
// and write it
mw.WriteImage("text_arc.png")
}
开发者ID:jabong,项目名称:imagick,代码行数:29,代码来源:main.go
示例4: textEffect7
// Text effect 7 - Polar distortion
func textEffect7() {
imagick.Initialize()
defer imagick.Terminate()
// This one uses d_args[0]
mw := imagick.NewMagickWand()
defer mw.Destroy()
dw := imagick.NewDrawingWand()
defer dw.Destroy()
pw := imagick.NewPixelWand()
defer pw.Destroy()
// Create a 320x200 transparent canvas
pw.SetColor("none")
mw.NewImage(320, 200, pw)
// Set up a 72 point font
dw.SetFont("Verdana-Bold-Italic")
dw.SetFontSize(72)
// Now draw the text
dw.Annotation(25, 65, "Magick")
// Draw the image on to the mw
mw.DrawImage(dw)
d_args[0] = 0.0
// DON'T FORGET to set the correct number of arguments here
mw.DistortImage(imagick.DISTORTION_POLAR, d_args, true)
//mw.ResetImagePage("")
// Trim the image again
mw.TrimImage(0)
// Add the border
pw.SetColor("none")
mw.BorderImage(pw, 10, 10)
// and write it
mw.WriteImage("text_polar.png")
}
开发者ID:jabong,项目名称:imagick,代码行数:33,代码来源:main.go
示例5: textEffect4
// Text effect 4 - bevelled font http://www.imagemagick.org/Usage/fonts/#bevel
func textEffect4() {
imagick.Initialize()
defer imagick.Terminate()
mw := imagick.NewMagickWand()
defer mw.Destroy()
dw := imagick.NewDrawingWand()
defer dw.Destroy()
pw := imagick.NewPixelWand()
defer pw.Destroy()
// Create a 320x100 canvas
pw.SetColor("gray")
mw.NewImage(320, 100, pw)
// Set up a 72 point font
dw.SetFont("Verdana-Bold-Italic")
dw.SetFontSize(72)
// Set up a 72 point white font
pw.SetColor("white")
dw.SetFillColor(pw)
// Now draw the text
dw.Annotation(25, 65, "Magick")
// Draw the image on to the mw
mw.DrawImage(dw)
// the "gray" parameter must be true to get the effect shown on Anthony's page
mw.ShadeImage(true, 140, 60)
pw.SetColor("yellow")
dw.SetFillColor(pw)
cpw := imagick.NewPixelWand()
defer cpw.Destroy()
cpw.SetColor("gold")
mw.ColorizeImage(pw, cpw)
// and write it
mw.WriteImage("text_bevel.png")
}
开发者ID:jabong,项目名称:imagick,代码行数:34,代码来源:main.go
示例6: getTextImage
func getTextImage(text string, size int) []byte {
imagick.Initialize()
defer imagick.Terminate()
mw := imagick.NewMagickWand()
defer mw.Destroy()
dw := imagick.NewDrawingWand()
defer dw.Destroy()
pw := imagick.NewPixelWand()
defer pw.Destroy()
l := len(text)
w := size * 3 * (l + 6)
h := size * 2
pw.SetColor("none")
mw.NewImage(uint(w), uint(h), pw)
pw.SetColor("white")
dw.SetFillColor(pw)
dw.SetFont("/usr/share/fonts/default/TrueType/msyh.ttf")
dw.SetFontSize(float64(size))
dw.Annotation(0, float64(size), "ctrip © "+text)
mw.DrawImage(dw)
mw.TrimImage(0)
mw.ResetImagePage("")
cw := mw.Clone()
pw.SetColor("black")
mw.SetImageBackgroundColor(pw)
mw.ShadowImage(100, 1, 0, 0)
mw.CompositeImage(cw, imagick.COMPOSITE_OP_OVER, 1, 1)
cw.Destroy()
mw.SetImageFormat("PNG")
return mw.GetImageBlob()
}
开发者ID:chenbk85,项目名称:nephele,代码行数:33,代码来源:text.go
示例7: Screenshot
func (c Snappshot) Screenshot(res string) revel.Result {
s := strings.Split(res, "x")
width, _ := strconv.Atoi(s[0])
height, _ := strconv.Atoi(s[1])
imagick.Initialize()
defer imagick.Terminate()
mw := imagick.NewMagickWand()
defer mw.Destroy()
dw := imagick.NewDrawingWand()
defer dw.Destroy()
cw := imagick.NewPixelWand()
cw2 := imagick.NewPixelWand()
cw.SetColor("darkgray")
cw2.SetColor("white")
mw.NewImage(uint(width), uint(height), cw)
dw.SetTextAlignment(imagick.ALIGN_CENTER)
dw.SetFillColor(cw2)
dw.SetFontSize(150)
cw2.SetColor("black")
dw.SetStrokeColor(cw2)
dw.Annotation(float64(width)/2, float64(height)/2, res)
mw.DrawImage(dw)
mw.SetImageFormat("jpg")
output := mw.GetImageBlob()
return JPGImage(output)
}
开发者ID:JustinJudd,项目名称:go_snappshot,代码行数:30,代码来源:snappshot.go
示例8: Draw
func Draw(text string, name string) {
imagick.Initialize()
defer imagick.Terminate()
// Current coordinates of text
var dx float64 = 20
mw := imagick.NewMagickWand()
dw := imagick.NewDrawingWand()
defer mw.Destroy()
defer dw.Destroy()
// Set the size of the image
mw.SetSize(285, 50)
mw.ReadImage("../assets/images/bg.gif")
// Start near the left edge
dw.SetFontSize(40)
// Note that we must free up the fontmetric array once we're done with it
list := strings.Split(text, " ")
for _, item := range list {
writeWord(mw, dw, &dx, item)
}
mw.DrawImage(dw)
// Now write the magickwand image
mw.WriteImage(name)
}
开发者ID:houzhenggang,项目名称:captcha,代码行数:26,代码来源:image.go
示例9: textEffect5And6
// Text effect 5 and 6 - Plain text and then Barrel distortion
func textEffect5And6() {
imagick.Initialize()
defer imagick.Terminate()
// This one uses d_args
mw := imagick.NewMagickWand()
defer mw.Destroy()
dw := imagick.NewDrawingWand()
defer dw.Destroy()
pw := imagick.NewPixelWand()
defer pw.Destroy()
// Create a 320x100 transparent canvas
pw.SetColor("none")
mw.NewImage(320, 100, pw)
// Set up a 72 point font
dw.SetFont("Verdana-Bold-Italic")
dw.SetFontSize(72)
// Now draw the text
dw.Annotation(25, 65, "Magick")
// Draw the image on to the mw
mw.DrawImage(dw)
mw.WriteImage("text_plain.png")
// Trim the image
mw.TrimImage(0)
// Add the border
pw.SetColor("none")
mw.BorderImage(pw, 10, 10)
//mw.SetImageMatte(true)
//mw.SetImageVirtualPixelMethod(TransparentVirtualPixelMethod)
// d_args[0] = 0.1;d_args[1] = -0.25;d_args[2] = -0.25; [3] += .1
// The first value should be positive. If it is negative the image is *really* distorted
d_args[0] = 0.0
d_args[1] = 0.0
d_args[2] = 0.5
// d_args[3] should normally be chosen such the sum of all 4 values is 1
// so that the result is the same size as the original
// You can override the sum with a different value
// If the sum is greater than 1 the resulting image will be smaller than the original
d_args[3] = 1 - (d_args[0] + d_args[1] + d_args[2])
// Make the result image smaller so that it isn't as likely
// to overflow the edges
// d_args[3] += 0.1
// 0.0,0.0,0.5,0.5,0.0,0.0,-0.5,1.9
d_args[3] = 0.5
d_args[4] = 0.0
d_args[5] = 0.0
d_args[6] = -0.5
d_args[7] = 1.9
// DON'T FORGET to set the correct number of arguments here
mw.DistortImage(imagick.DISTORTION_BARREL, d_args, true)
//mw.ResetImagePage("")
// Trim the image again
mw.TrimImage(0)
// Add the border
pw.SetColor("none")
mw.BorderImage(pw, 10, 10)
// and write it
mw.WriteImage("text_barrel.png")
}
开发者ID:jabong,项目名称:imagick,代码行数:59,代码来源:main.go
示例10: main
func main() {
imagick.Initialize()
defer imagick.Terminate()
// Current coordinates of text
var dx, dy float64
// Width of a space in current font/size
var sx float64
mw := imagick.NewMagickWand()
dw := imagick.NewDrawingWand()
// Set the size of the image
mw.SetSize(300, 100)
//mw.SetImageAlphaChannel(imagick.CHANNEL_ALPHA)
mw.ReadImage("xc:white")
// DO NOT SET GRAVITY - it makes text placement more complicated
// (unless it does exactly what you wanted anyway).
// Start near the left edge
dx = 10
// If we know the largest font we're using, we can set the y coordinate
// fairly accurately. In this case it is the 72 point Times font, so to
// place the text such that the largest almost touches the top of the image
// we just add the text height to the descender to give the coordinate for
// our baseline.
// In this case the largest is the 72 point Times-New-Roman so I'll use that
// to compute the baseline
dw.SetFontSize(72)
dw.SetFont("Times-New-Roman")
fm := mw.QueryFontMetrics(dw, "M")
dy = fm.CharacterHeight + fm.Descender
// Note that we must free up the fontmetric array once we're done with it
// this
draw_setfont(mw, dw, "Arial", 48, "#40FF80", &sx)
draw_metrics(mw, dw, &dx, dy, sx, "this")
// is
// A NULL signals to draw_setfont that the font stays the same
draw_setfont(mw, dw, "", 24, "#8040BF", &sx)
draw_metrics(mw, dw, &dx, dy, sx, "is")
// my
draw_setfont(mw, dw, "Times-New-Roman", 18, "#BF00BF", &sx)
draw_metrics(mw, dw, &dx, dy, sx, "my")
// text
draw_setfont(mw, dw, "", 72, "#0F0FBF", &sx)
draw_metrics(mw, dw, &dx, dy, sx, "text")
mw.DrawImage(dw)
// Now write the magickwand image
mw.WriteImage("metric1.gif")
}
开发者ID:jabong,项目名称:imagick,代码行数:57,代码来源:main.go
示例11: textEffect1
// Text effect 1 - shadow effect using MagickShadowImage
// NOTE - if an image has a transparent background, adding a border of any colour other
// than "none" will remove all the transparency and replace it with the border's colour
func textEffect1() {
imagick.Initialize()
defer imagick.Terminate()
mw := imagick.NewMagickWand()
defer mw.Destroy()
dw := imagick.NewDrawingWand()
defer dw.Destroy()
pw := imagick.NewPixelWand()
defer pw.Destroy()
pw.SetColor("none")
// Create a new transparent image
mw.NewImage(350, 100, pw)
// Set up a 72 point white font
pw.SetColor("white")
dw.SetFillColor(pw)
dw.SetFont("Verdana-Bold-Italic")
dw.SetFontSize(72)
// Add a black outline to the text
pw.SetColor("black")
dw.SetStrokeColor(pw)
// Turn antialias on - not sure this makes a difference
dw.SetTextAntialias(true)
// Now draw the text
dw.Annotation(25, 65, "Magick")
// Draw the image on to the mw
mw.DrawImage(dw)
// Trim the image down to include only the text
mw.TrimImage(0)
// equivalent to the command line +repage
mw.ResetImagePage("")
// Make a copy of the text image
cw := mw.Clone()
// Set the background colour to blue for the shadow
pw.SetColor("blue")
mw.SetImageBackgroundColor(pw)
// Opacity is a real number indicating (apparently) percentage
mw.ShadowImage(70, 4, 5, 5)
// Composite the text on top of the shadow
mw.CompositeImage(cw, imagick.COMPOSITE_OP_OVER, 5, 5)
cw.Destroy()
cw = imagick.NewMagickWand()
defer cw.Destroy()
// Create a new image the same size as the text image and put a solid colour
// as its background
pw.SetColor("rgb(125,215,255)")
cw.NewImage(mw.GetImageWidth(), mw.GetImageHeight(), pw)
// Now composite the shadowed text over the plain background
cw.CompositeImage(mw, imagick.COMPOSITE_OP_OVER, 0, 0)
// and write the result
cw.WriteImage("text_shadow.png")
}
开发者ID:jabong,项目名称:imagick,代码行数:54,代码来源:main.go
示例12: createMask
func createMask(d uint, r float64) (mask *imagick.MagickWand) {
mask = imagick.NewMagickWand()
pw := imagick.NewPixelWand()
defer pw.Destroy()
dw := imagick.NewDrawingWand()
defer dw.Destroy()
pw.SetColor("none")
mask.NewImage(d, d, pw)
pw.SetColor("white")
dw.SetFillColor(pw)
dw.Circle(r, r, r-1, r*2-1)
mask.DrawImage(dw)
return
}
开发者ID:cema-sp,项目名称:twinkle,代码行数:17,代码来源:splitter.go
示例13: speedLine
func speedLine(mw *imagick.MagickWand, aw *imagick.MagickWand) error {
cols, rows := mw.GetImageHeight(), mw.GetImageWidth()
dw := imagick.NewDrawingWand()
defer dw.Destroy()
cw := imagick.NewPixelWand()
cw.SetColor(*color)
dw.SetFillColor(cw)
center := []float64{float64(rows) / 2.0, float64(cols) / 2.0}
const radiusCenter float64 = 0.75
const step float64 = 0.02
const bold float64 = 1.0
var theeta float64
for theeta < math.Pi*2 {
stepNoise := rand.Float64() + 0.5
theeta += step * stepNoise
radiusCenterNoise := rand.Float64()*0.3 + 1.0
boldNoise := rand.Float64() + 0.7 + 0.3
point0 := imagick.PointInfo{
X: math.Sin(theeta)*center[0]*radiusCenter*radiusCenterNoise + center[0],
Y: math.Cos(theeta)*center[1]*radiusCenter*radiusCenterNoise + center[1],
}
point1 := imagick.PointInfo{
X: math.Sin(theeta)*center[0]*2 + center[0],
Y: math.Cos(theeta)*center[1]*2 + center[1],
}
point2 := imagick.PointInfo{
X: math.Sin(theeta+step*bold*boldNoise)*center[0]*2 + center[0],
Y: math.Cos(theeta+step*bold*boldNoise)*center[1]*2 + center[1],
}
dw.Polygon([]imagick.PointInfo{point0, point1, point2})
}
if err := aw.DrawImage(dw); err != nil {
return err
}
return nil
}
开发者ID:ephemeralsnow,项目名称:speedline,代码行数:43,代码来源:speedline.go
示例14: NewPixelizr
func NewPixelizr(img string, targetRes int) (pixelData, error) {
srcWand := imagick.NewMagickWand()
err := srcWand.ReadImage(img)
width, height := shrinkImage(srcWand, targetRes)
return pixelData{
// data: px.([]uint8),
rows: int(height),
columns: int(width),
blockSize: int(1080 / height),
wands: wands{
src: srcWand,
pw: imagick.NewPixelWand(),
mw: imagick.NewMagickWand(),
dw: imagick.NewDrawingWand(),
},
}, err
}
开发者ID:rmfarrell,项目名称:pix-vid,代码行数:21,代码来源:main.go
示例15: useDraw
func useDraw() {
imagick.Initialize()
defer imagick.Terminate()
/* Create a wand */
mw := imagick.NewMagickWand()
defer mw.Destroy()
/* Read the input image */
mw.ReadImage("logo:")
fill := imagick.NewPixelWand()
defer fill.Destroy()
dw := imagick.NewDrawingWand()
defer dw.Destroy()
// Set the fill to "red" or you can do the same thing with this:
fill.SetColor("red")
dw.SetFillColor(fill)
// Uses the current Fill as the colour of the point at 200,100
dw.Point(200, 100)
mw.DrawImage(dw)
/* write it */
mw.WriteImage("logo_pixel_drawingwand.gif")
}
开发者ID:palaiyacw,项目名称:imagick,代码行数:22,代码来源:main.go
示例16: textEffect8
// Text effect 8 - Shepard's distortion
func textEffect8() {
imagick.Initialize()
defer imagick.Terminate()
// This one uses d_args[0]
mw := imagick.NewMagickWand()
defer mw.Destroy()
dw := imagick.NewDrawingWand()
defer dw.Destroy()
pw := imagick.NewPixelWand()
defer pw.Destroy()
// Create a 320x200 transparent canvas
pw.SetColor("none")
mw.NewImage(640, 480, pw)
// Set up a 72 point font
dw.SetFont("Verdana-Bold-Italic")
dw.SetFontSize(72)
// Now draw the text
dw.Annotation(50, 240, "Magick Rocks")
// Draw the image on to the mw
mw.DrawImage(dw)
d_args[0] = 150.0
d_args[1] = 190.0
d_args[2] = 100.0
d_args[3] = 290.0
d_args[4] = 500.0
d_args[5] = 200.0
d_args[6] = 430.0
d_args[7] = 130.0
// DON'T FORGET to set the correct number of arguments here
mw.DistortImage(imagick.DISTORTION_SHEPARDS, d_args, true)
// Trim the image
mw.TrimImage(0)
// Add the border
pw.SetColor("none")
mw.BorderImage(pw, 10, 10)
// and write it
mw.WriteImage("text_shepards.png")
}
开发者ID:jabong,项目名称:imagick,代码行数:39,代码来源:main.go
示例17: Make
func Make(path string) string {
if IsURL(path) {
path = Download(path)
}
// make file name
base := filepath.Base(path)
ext := filepath.Ext(path)
basesize := len(base)
extsize := len(ext)
base = string([]rune(base)[0 : basesize-extsize])
ext = string([]rune(ext)[1:extsize])
if ext != "jpg" && ext != "gif" && ext != "png" {
err := errors.New("unknow format")
panic(err)
}
output := base + "_lgtm." + ext
file, err := os.Open(path)
if err != nil {
panic(err)
}
defer file.Close()
// adjust lgtm size
conf, _, err := image.DecodeConfig(file)
size := 0.0
if conf.Width > conf.Height {
size = float64(conf.Height) / 3.0 * 0.75
} else {
size = float64(conf.Width) / 3.0 * 0.75
}
// prepare image
imagick.Initialize()
defer imagick.Terminate()
mw := imagick.NewMagickWand()
defer mw.Destroy()
err = mw.ReadImage(path)
if err != nil {
panic(err)
}
// prepare text
dw := imagick.NewDrawingWand()
defer dw.Destroy()
pw := imagick.NewPixelWand()
defer pw.Destroy()
pw.SetColor("white")
dw.SetFont("/Library/Fonts/Impact.ttf")
dw.SetFontSize(size)
dw.SetTextKerning(size / 10)
dw.SetFillColor(pw)
dw.SetGravity(imagick.GRAVITY_CENTER)
mw.SetFirstIterator()
// draw text and save
image := mw.CoalesceImages()
image.AnnotateImage(dw, 0, 0, 0, "LGTM")
for image.NextImage() {
image.AnnotateImage(dw, 0, 0, 0, "LGTM")
}
image.OptimizeImageLayers()
err = image.WriteImages(output, true)
if err != nil {
panic(err)
}
return output
}
开发者ID:kgmyshin,项目名称:lgtm,代码行数:71,代码来源:lgtm.go
示例18: Do
func (this *RoundPicer) Do(req ufop.UfopRequest) (result interface{}, resultType int, contentType string, err error) {
//parse cmd
cmdParams, pErr := this.parse(req.Cmd)
if pErr != nil {
err = pErr
return
}
//check src image
if matched, _ := regexp.MatchString("image/(png|jpeg)", req.Src.MimeType); !matched {
err = errors.New("unsupported mimetype, only 'image/png' and 'image/jpeg' supported")
return
}
if req.Src.Fsize > this.maxFileSize {
err = errors.New("src image size too large, exceeds the limit")
return
}
//download the image
resp, respErr := http.Get(req.Src.Url)
if respErr != nil || resp.StatusCode != http.StatusOK {
if respErr != nil {
err = errors.New(fmt.Sprintf("get image data failed, %s", respErr.Error()))
} else {
err = errors.New(fmt.Sprintf("get image data failed, %s", resp.Status))
if resp.Body != nil {
resp.Body.Close()
}
}
return
}
defer resp.Body.Close()
srcImgData, readErr := ioutil.ReadAll(resp.Body)
if readErr != nil {
err = errors.New(fmt.Sprintf("read image data failed, %s", readErr.Error()))
return
}
var srcImg image.Image
var decodeErr error
switch req.Src.MimeType {
case "image/png":
srcImg, decodeErr = png.Decode(bytes.NewReader(srcImgData))
case "image/jpeg":
srcImg, decodeErr = jpeg.Decode(bytes.NewReader(srcImgData))
}
if decodeErr != nil {
err = errors.New(fmt.Sprintf("decode image failed, %s", decodeErr.Error()))
return
}
srcImgWidth := srcImg.Bounds().Dx()
srcImgHeight := srcImg.Bounds().Dy()
//parse cmd params, radius can be pixels or percentage
radiusX, radiusY := getRadius(cmdParams, srcImgWidth, srcImgHeight)
//init imagick
imagick.Initialize()
defer imagick.Terminate()
//create mask
maskDraw := imagick.NewMagickWand()
defer maskDraw.Destroy()
backDraw := imagick.NewPixelWand()
defer backDraw.Destroy()
backDraw.SetColor("none")
//draw mask
nErr := maskDraw.NewImage(uint(srcImgWidth), uint(srcImgHeight), backDraw)
if nErr != nil {
err = errors.New(fmt.Sprintf("create mask image failed, %s", nErr.Error()))
return
}
backDraw.SetColor("white")
roundDraw := imagick.NewDrawingWand()
defer roundDraw.Destroy()
roundDraw.SetFillColor(backDraw)
roundDraw.RoundRectangle(0, 0, float64(srcImgWidth-1), float64(srcImgHeight-1), radiusX, radiusY)
//draw round pic
dErr := maskDraw.DrawImage(roundDraw)
if dErr != nil {
err = errors.New(fmt.Sprintf("draw mask image failed, %s", dErr.Error()))
return
}
//load src image
srcDraw := imagick.NewMagickWand()
defer srcDraw.Destroy()
rErr := srcDraw.ReadImageBlob(srcImgData)
if rErr != nil {
err = errors.New(fmt.Sprintf("read src image failed, %s", rErr.Error()))
return
//.........这里部分代码省略.........
开发者ID:needkane,项目名称:qiniu-ufop-service,代码行数:101,代码来源:roundpic.go
注:本文中的github.com/gographics/imagick/imagick.NewDrawingWand函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论