本文整理匯總了Golang中github.com/gographics/imagick/imagick.MagickWand.GetImage方法的典型用法代碼示例。如果您正苦於以下問題:Golang MagickWand.GetImage方法的具體用法?Golang MagickWand.GetImage怎麽用?Golang MagickWand.GetImage使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類github.com/gographics/imagick/imagick.MagickWand
的用法示例。
在下文中一共展示了MagickWand.GetImage方法的2個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Golang代碼示例。
示例1: glitchImage
func glitchImage(wand *imagick.MagickWand, q url.Values) ([]byte, error) {
data := wand.GetImage().GetImageBlob()
jpgHeaderLength := getJpegHeaderSize(data)
maxIndex := len(data) - jpgHeaderLength - 4
params := getParams(q)
length := int(params["iterations"])
for i := 0; i < length; i++ {
pxMin := math.Floor(float64(maxIndex) / params["iterations"] * float64(i))
pxMax := math.Floor(float64(maxIndex) / params["iterations"] * float64((i + 1)))
delta := pxMax - pxMin
pxI := math.Floor(pxMin + delta*params["seed"])
if int(pxI) > maxIndex {
pxI = float64(maxIndex)
}
index := math.Floor(float64(jpgHeaderLength) + pxI)
data[int(index)] = byte(math.Floor(params["amount"] * float64(256)))
}
wand2 := imagick.NewMagickWand()
if err := wand2.ReadImageBlob(data); err != nil {
return nil, err
}
if err := wand2.SetImageFormat("PNG"); err != nil {
return nil, err
}
return wand2.GetImage().GetImageBlob(), nil
}
示例2: resizeImage
func resizeImage(wand *imagick.MagickWand, size int, mozaic bool) *imagick.MagickWand {
width := float32(wand.GetImageWidth())
height := float32(wand.GetImageHeight())
var rate float32
if width > height {
rate = float32(size) / width
} else {
rate = float32(size) / height
}
if mozaic {
wand.ResizeImage(uint(width*rate/20), uint(height*rate/20), imagick.FILTER_LANCZOS, 1)
wand.ResizeImage(uint(width*rate), uint(height*rate), imagick.FILTER_POINT, 1)
} else {
wand.ResizeImage(uint(width*rate), uint(height*rate), imagick.FILTER_LANCZOS, 1)
}
return wand.GetImage()
}