我试图使用以下代码将字符串转换为32位ubuntu上的uint.但是它始终在uint64中转换它,尽管在函数中明确地传递了32作为参数.下面的代码mw是图像magick库的对象.哪个和uint什么时候返回.此外,它接受resize函数中的type参数. mw.getImageWidth()mw.getImageHeight()uint
width := strings.Split(imgResize, "x")[0]
height := strings.Split(imgResize, "x")[1]
var masterWidth uint = mw.GetImageWidth()
var masterHeight uint = mw.GetImageHeight()
mw := imagick.NewMagickWand()
defer mw.Destroy()
err = mw.ReadImageBlob(img)
if err != nil {
log.Fatal(err)
}
var masterWidth uint = mw.GetImageWidth()
var masterHeight uint = mw.GetImageHeight()
wd, _ := strconv.ParseUint(width, 10, 32)
ht, _ := strconv.ParseUint(height, 10, 32)
if masterWidth < wd || masterHeight < ht {
err = mw.ResizeImage(wd, ht, imagick.FILTER_BOX, 1) …Run Code Online (Sandbox Code Playgroud) 我正在使用Go包(Go绑定到ImageMagick的MagickWand C API)到ImageMagick,在这里我要从图像中删除边框(裁剪)。我使用修剪功能的方式可以在下面找到。
现在的问题是模糊因素。例如,如果我将该值设置为2000,则图像(这里是源)仍然具有一些白色图像,如下所示:
我创建了一个小的html来最好地说明问题。它包含两个图像:https : //dl.dropboxusercontent.com/u/15684927/image-trim-problem.html
如您所见,源在右下角有一些像素,这会引起问题。如果将系数设置为10000,恐怕会丢失其他图片上的像素。如果我将其设置为2000,则无法在此类图片中正确进行剪裁。
因此,我的实际问题是:“裁剪” /“修剪”图像的最佳方法是什么?
package main
import "gopkg.in/gographics/imagick.v1/imagick"
func main() {
imagick.Initialize()
defer imagick.Terminate()
inputFile := "tshirt-original.jpg"
outputFile := "trimmed.jpg"
mw := imagick.NewMagickWand()
// Schedule cleanup
defer mw.Destroy()
// read image
err := mw.ReadImage(inputFile)
if err != nil {
panic(err)
}
// first trim original image
// fuzz: by default target must match a particular pixel color exactly.
// However, in many cases two colors …Run Code Online (Sandbox Code Playgroud)