本文整理汇总了Golang中github.com/gographics/imagick/imagick.MagickWand.ResizeImage方法的典型用法代码示例。如果您正苦于以下问题:Golang MagickWand.ResizeImage方法的具体用法?Golang MagickWand.ResizeImage怎么用?Golang MagickWand.ResizeImage使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类github.com/gographics/imagick/imagick.MagickWand
的用法示例。
在下文中一共展示了MagickWand.ResizeImage方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: resize
func (i *Image) resize(wand *imagick.MagickWand, w, h uint) {
ow := wand.GetImageWidth()
oh := wand.GetImageHeight()
if (float64(ow) / float64(oh)) < (float64(w) / float64(h)) {
h = oh * w / ow
} else {
w = ow * h / oh
}
wand.SetImageInterpolateMethod(imagick.INTERPOLATE_PIXEL_BICUBIC)
wand.ResizeImage(w, h, imagick.FILTER_LANCZOS2_SHARP, 1)
}
示例2: resize
func resize(mw *imagick.MagickWand, geo btcdn.GeoBox) (err error) {
var height uint
width := geo.Width()
baseWidth := int(mw.GetImageWidth())
if width > baseWidth {
width = baseWidth
}
if geo.Mode() == "!" {
height = uint(geo.Height())
} else {
ratio := heightToWidthRatio(mw)
height = uint((float64)(width) * ratio)
}
err = mw.ResizeImage(uint(width), height, imagick.FILTER_LANCZOS, 1)
if err != nil {
return
}
return
}
示例3: 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()
}
示例4: proportion
func proportion(mw *imagick.MagickWand, proportion int, cols uint, rows uint) error {
var result error
result = nil
imCols := mw.GetImageWidth()
imRows := mw.GetImageHeight()
if proportion == 0 {
fmt.Sprintf("p=0, wi_scale(im, %d, %d)\n", cols, rows)
result = mw.ResizeImage(cols, rows, imagick.FILTER_UNDEFINED, 1.0)
} else if proportion == 1 {
if cols == 0 || rows == 0 {
if cols > 0 {
rows = uint(round(float64((cols / imCols) * imRows)))
} else {
cols = uint(round(float64((rows / imRows) * imCols)))
}
fmt.Sprintf("p=1, wi_scale(im, %d, %d)\n", cols, rows)
result = mw.ResizeImage(cols, rows, imagick.FILTER_UNDEFINED, 1.0)
} else {
var x, y, sCols, sRows uint
x, y = 0, 0
colsRate := cols / imCols
rowsRate := rows / imRows
if colsRate > rowsRate {
sCols = cols
sRows = uint(round(float64(colsRate * imRows)))
y = uint(math.Floor(float64((sRows - rows) / 2.0)))
} else {
sCols = uint(round(float64(rowsRate * imCols)))
sRows = rows
x = uint(math.Floor(float64((sCols - cols) / 2.0)))
}
fmt.Sprintf("p=2, wi_scale(im, %d, %d)\n", sCols, sRows)
result = mw.ResizeImage(sCols, sRows, imagick.FILTER_UNDEFINED, 1.0)
fmt.Sprintf("p=2, wi_crop(im, %d, %d, %d, %d)\n", x, y, cols, rows)
result = mw.CropImage(cols, rows, int(x), int(y))
}
} else if proportion == 2 {
x := int(math.Floor(float64((imCols - cols) / 2.0)))
y := int(math.Floor(float64((imRows - rows) / 2.0)))
fmt.Sprintf("p=3, wi_crop(im, %d, %d, %d, %d)\n", x, y, cols, rows)
result = mw.CropImage(cols, rows, x, y)
} else if proportion == 3 {
if cols == 0 || rows == 0 {
var rate uint
if cols > 0 {
rate = cols
} else {
rate = rows
}
rows = uint(round(float64(imRows * rate / 100)))
cols = uint(round(float64(imCols * rate / 100)))
fmt.Sprintf("p=3, wi_scale(im, %d, %d)\n", cols, rows)
result = mw.ResizeImage(cols, rows, imagick.FILTER_UNDEFINED, 1.0)
} else {
rows = uint(round(float64(imRows * rows / 100)))
cols = uint(round(float64(imCols * cols / 100)))
fmt.Sprintf("p=3, wi_scale(im, %d, %d)\n", cols, rows)
result = mw.ResizeImage(cols, rows, imagick.FILTER_UNDEFINED, 1.0)
}
} else if proportion == 4 {
var rate float64
rate = 1.0
if cols == 0 || rows == 0 {
if cols > 0 {
rate = float64(cols / imCols)
} else {
rate = float64(rows / imRows)
}
} else {
rateCol := cols / imCols
rateRow := rows / imRows
if rateCol < rateRow {
rate = float64(rateCol)
} else {
rate = float64(rateRow)
}
}
cols = uint(round(float64(float64(imCols) * rate)))
rows = uint(round(float64(float64(imRows) * rate)))
fmt.Sprintf("p=4, wi_scale(im, %d, %d)\n", cols, rows)
result = mw.ResizeImage(cols, rows, imagick.FILTER_UNDEFINED, 1.0)
}
return result
}