问题标签 [go-imagick]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
851 浏览

go - 从 go lang 中的响应流创建 Image magick 对象

我正在使用以下代码从Amazon S3. 现在,下载图像后,我想使用imagick 库调整它的大小,但不将其写入磁盘。那么,我如何直接从我将从 S3 获得的响应流创建图像魔法对象并将其上传到 Amazon S3 上。您能否建议在下面的代码中进行相同的更改?另外,如何将其更改为从查询字符串中获取键值的 http 处理程序?

我已经注释掉了我的图像魔法对象代码,因为我知道如何编写它。

0 投票
1 回答
47734 浏览

go - 在 go lang 中将字符串转换为 uint

我正在尝试使用以下代码在 32 位 ubuntu 上将字符串转换为 uint。但它总是将其转换为 uint64,尽管在函数中显式传递 32 作为参数。下面的代码 mw 是图像魔法库的对象。uint何时返回,mw.getImageWidth()并被mw.getImageHeight()调用。此外,它接受resize函数 uint中的类型参数。

错误是:

0 投票
1 回答
363 浏览

go - 在 go lang 中创建一个返回类型为图像魔法对象的函数

我想创建与 S3 中存储的图像相对应的图像魔法对象。所以,我正在编写一个函数,它将接受必要的参数并返回图像魔法对象。但是,没有运气。这是我正在使用的Imagick 库。

0 投票
2 回答
2354 浏览

go - Golang将图像魔术对象转换为[]字节

我正在使用以下代码从 Amazon s3 获取对象并在执行调整大小和裁剪之后。我想将它存储在 s3 上。但问题是我无法转换mw (Image maigck object)为字节数组。它将用于将其存储在 s3 上。此外,在当前方法中,它使用 jpeg.Encode。如果图像是 .png 或 .gif 格式怎么办。我们如何将其转换为 []byte?

您能否还告诉我如何仅通过纵横比而不是裁剪坐标来均匀裁剪图像。imgStream.Crop((int)originalWidth, ((int)(originalWidth / masterAspectRatio)), Gravity.Center)就像我们在 .net 中那样。我要问的原因是库中没有提供这种灵活性的方法。

错误 :

0 投票
3 回答
3933 浏览

imagemagick - 在临时文件夹中创建了很多临时魔法文件

我正在使用imagick库在 http 处理程序中调整和裁剪图像的大小。这不会在/tmp文件夹中写入任何内容。但是我可以在该文件夹中创建很多这些文件,并且它的大小每天都在增长,目前它消耗了大约 90% 的分区大小。此外,我也无法阅读他们的内容。那么,为什么要创建这些文件以及它们会在一段时间后被删除还是我需要手动删除它们。

编辑 :

我没有在我的 http 处理程序中使用以下两行。原因是我找不到任何解释这样做。此外,go http 处理程序工作正常。那么,这些声明的目的是什么?

我假设有一些理由将它们包含在代码中。所以,在 go http 处理程序中。它应该包含在里面func main()还是里面serveHTTP

0 投票
1 回答
1678 浏览

go - go lang http处理程序中的内存泄漏

我有以下 http 处理程序代码,根据后续请求从 Amazon S3 下载原始图像并将其转换为所需的纵横比并将其保存回 s3。这段代码泄漏了内存,一段时间后它崩溃了。我已经处理了我身边的所有事情,还对代码进行了分析。但是,还是想不通这个问题。如果有人能在这里弄清楚,将不胜感激。仅供参考,我正在使用该go version go1.5.3 linux/amd64版本。

分析的输出:

代码 :

0 投票
1 回答
1779 浏览

go - 删除边框/裁剪图像的最佳方法

我正在使用一个Go 包(Go 绑定到 ImageMagick 的 MagickWand C API)到 ImageMagick,我正在从图像中删除边框(裁剪)。我使用修剪功能的方式可以在下面找到。

现在的问题是模糊因素。例如,如果我将值设置为 2000,图像(这里是源)仍然有一些像这样的白色图像:

  • 模糊因子值 2000 -->结果
  • 模糊因子值 10000 -->结果

我创建了一个小 html 来最好地说明问题。它包含两个图像:https ://dl.dropboxusercontent.com/u/15684927/image-trim-problem.html

如您所见,源在右下角有一些像素,这会导致问题。如果我将因子设置为 10000,恐怕我会在其他图片上丢失像素。如果我将其设置为 2000,则在此类图片中修剪不正确。

所以我的实际问题是:“裁剪”/“修剪”图像的最佳方法是什么?

0 投票
1 回答
4619 浏览

cgo - 如何说服 Go 找到 C 库

谁能告诉我在构建使用已安装到非标准位置的 ImageMagick 库的 go 程序时我做错了什么。

我想我看到的是程序构建了,但是一个告诉程序在非标准位置查找动态库的标志没有设置在某处,因此程序无法找到该库。

重现步骤如下:

将 ImageMagick 配置为安装到非标准目录并构建它:

将 pkgconfig 目录添加到 PKG_CONFIG_PATH 以便 pkg-config 可以找到它。

检查 pkg-config 是否满意并且可以找到它:

构建程序并捕获所有输出:

尝试运行它:

我还通过 strace 运行程序来捕获所有系统调用,捕获如下。它表明程序没有在正确的位置寻找库文件。

当程序位于该自定义位置时,我需要做什么才能使程序能够找到该库?

如果我手动设置 CGO_CFLAGS 和 CGO_LDFLAGS,然后使用 'no_pkgconfig' 选项集进行构建,我会得到相同的结果。

万一这很重要,我在 Centos6.4 上使用“go version go1.6.2 linux/amd64”

debug.go 源文件

这是构建的输出:

这是 strace 捕获的输出,表明程序没有在正确的位置查找。

0 投票
1 回答
1083 浏览

go - 如何使用GOLang官方镜像将冷门包导入Docker?

我已经将这个问题作为一个问题发布在 imagick git 存储库上,但它的用户群非常小,所以我希望能从这里得到一些帮助。几天来,我一直在尝试使用官方的 goLang dockerfile 将https://github.com/gographics/imagick导入Docker,用于我正在从事的项目,但没有成功。由于这个包不流行,运行 apt-get 将不起作用。我(犹豫地)尝试将文件添加到容器中,但这没有用。这是我构建的 DockerFile 及其产生的错误:===DOCKERFILE===

===结束码头文件===

这允许我构建 docker 容器,但是当我尝试运行它时,我在运动学日志中收到以下错误:

===码头工人错误===

===结束码头错误===

0 投票
2 回答
1693 浏览

go - 如何在 Go 语言中创建优化和渐进式图像(JPG、PNG)

我在 Go 中使用以下代码以 JPEG 和 PNG 格式调整图像的大小。那么,如何使用Imagick将它们转换为渐进式和优化。我正在ImageMagick 6.9.3-8 Q16 x86_64使用ubuntu 14.04

我说优化原因是我使用以下命令来测试图像大小是否减小。但是,它会增加输出文件的大小。

命令 :

去代码: