问题标签 [magickwand]

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 回答
573 浏览

c - MagickCommandGenesis 总是返回 MagickFalse

相关资料真的不多,官方手册看哭了。我正在尝试通过 MagickCommandGenesis 运行自定义脚本,因为我放弃了尝试将一些脚本转换为使用 API 的干净 c 代码。但是,这段代码:

总是写“未定义”,即MagickCommandGenesis 返回false,但不抛出异常。

我不能使用临时文件来读取或写入,我想在内存中执行所有操作,因此wand通过 MagickReadImageBlob 读取。Blob 是绝对有效的,我可以做任何 API 操作并最终在屏幕上绘制图像,唯一不起作用的是命令运行。

我发现的唯一一个相关问题是here,但它不是那么有用。更重要的是,OP 在文件中使用了读写,但仍然出现错误。有答案标记为已接受,但建议使用MagickCommandGenesis我已经做的。

更新:

我发现image_infoMagickWand 的成员实际上什么都没有(可能它只是用默认值初始化,而 MagickWand 根本没有使用)。所以现在我正在寻找从内存 blob 中实例化 ImageInfo 结构的正确方法。这就是我尝试过的:

不幸的是,我仍然收到“未定义”错误,所以MagickCommandGenesis仍然返回 false,但不要抛出异常。

0 投票
1 回答
1590 浏览

imagemagick - Magickwand 转换为 TIFF&CCITT 组 4 压缩提供未压缩的图像

尝试使用 CCITT 组 4 压缩将 24 bpp 位图转换为黑白 TIFF。结果是预期的 TIFF 1 bpp 图像,但未压缩。

我正在使用具有 magickwand 绑定的 FreePascal,并且状态永远不会是 MagickFalse:

http://filehorst.de/d/bmqjzDuB上的源图像

原始(错误)程序源代码位于http://filehorst.de/d/bluhjivq

http://filehorst.de/d/bhlbjHgp上的原始(错误)输出图像

我究竟做错了什么?

编辑:已解决;在异地获得解决方案:FreePascal 绑定中的 CompressionType 枚举可能已过时 - Group4Compression 为 4 (IIRC),而应该为 7。

我将赏金给 Mark Setchell,因为他的回答是解决方案的必要部分。上面的源代码更新为正确的版本。

0 投票
3 回答
523 浏览

imagemagick - ImageMagick API - 以正确的方向导出像素

我一直在使用这种方法使用 MagickWand API 导出像素:

但是,这似乎不遵守图像中的方向 exif 数据。有没有办法以正确的方向提取像素,所以我可以用不同的格式写出来(不使用MagickWriteImage)?基本上,我想要转换的自动定向选项的行为。

谢谢!

0 投票
2 回答
1223 浏览

crop - PhotoShop - 自动批处理以删除边界外的内容

想自动化并仅捕获地图部分并将其保存到不同的文件中,即删除矩形之外的任何东西。我尝试探索 Photoshop 的魔杖改进边缘工具,但不确定我的方法中是否遗漏了任何东西。看起来裁剪或修剪可能无法实现自动化,因为每个图像的尺寸都不同。

注意:矩形边框并不适用于每个图像,即每边的边框宽度可能会有所不同,并且矩形的尺寸也可能会有所不同。我有 1000 多张地图,自动化将加快任务速度。

在此先感谢您的任何输入、推荐![在此处输入图像描述][1]s 等。

参考地图: http ://www.google.com/imgres?imgurl=http%3A%2F%2Fwww.portal.gsi.gov.in%2Fimages%2FGSIimages%2FSTATUS_Map_AirborneSurveys_11-12.gif&imgrefurl=http%3A%2F%2Fwww .portal.gsi.gov.in%2Fpls%2Fportal%2Furl%2Fpage%2FGSI_STATIC%2FGSI_STAT_SEARCH_AMSE%3FlinkId%3D1032&h=4018&w=2651&tbnid=Bgkcf16ZBBhB9M%3A&zoom=1&docid=azCZJ7k99sm84M&ei=WzFBVN7YArS1sQSr_oGAAg&tbm=isch&ved=0CB4QMygAMAA&iact=rc&uact=3&dur=9105&page=1&start =0&ndsp=26

0 投票
1 回答
203 浏览

imagemagick - Imagemagick API:MagickQuantizeImage 与 MagickTransformImageColorspace

要将图像转换为灰度,我尝试过:

MagickQuantizeImage(wand, 256, GRAYColorspace, 0, MagickFalse, MagickFalse);

MagickTransformImageColorspace(wand, GRAYColorspace);

在我的程序中,两者都按预期工作。

但是他们之间有什么区别呢?画面质量?副作用?效率?

提前致谢。

0 投票
0 回答
344 浏览

python - python: wand 在导出时自动压缩单色图像。任何解决方法?

我正在开发一种工具,该工具通过 Python 使用 ImageMagick 将大图像切割成较小的图块。而且我需要所有图块都采用相同的格式(png,8 或 16 位)。

在大多数情况下,它工作得很好,但在单色瓷砖上 ImageMagick 会在写入文件时压缩图片。例如,纯黑色图块被压缩为 1 位图片。

如文档中所述,我使用普通保存方法。

我没有找到有关此自动压缩功能的文档,也没有找到任何避免这种情况的方法。

是否有解决方法或避免这种情况发生的方法?

编辑:

例如,如果我使用此代码导入 24 位 rgb 图片:

我把它当作类型

如果我添加这个,

我再一次得到

如果我尝试像这样强制像素深度,

我得到:

我想也许它实际上改变了深度,但是一旦我保存图像,它又变成了 1 位深度。

所以在我看来,ImageMagick 只是自动压缩图片,我无法控制它。它甚至拒绝更改图像类型。

有什么想法可以避免这种情况吗?有什么方法可以强制像素深度?

0 投票
1 回答
171 浏览

python - 分割错误 Django ImageMagick

我正在使用 instagram 的 API 做一个网络应用程序。本练习所需的要点之一是“在 python 代码中使用 C 库”,因此我使用 CTYPES 来调整 ImageMagick 以将过滤器应用于照片。

所以,我有 URL 图像,我想应用过滤器:

如果我在一个简单的 tets.py 中执行此操作,它可以正常工作,但是一旦我将它放入 django 的 views.py 中,它就会产生分段错误。

这是 gdb 输出:

程序收到信号 SIGSEGV,分段错误。0x00007ffff782dfb7 in kill () at ../sysdeps/unix/syscall-template.S:81 81 ../sysdeps/unix/syscall-template.S: 文件或目录不存在。

0 投票
1 回答
35 浏览

python - 图片上传和编辑时使用 django 的 MissingErrorDelegate

为什么这不起作用?

从 wand.image 导入图像

我想在 django 中上传图像并对其进行灰度化。每次我运行这段代码时,它都会抛出一个

`解码此图像格式的委托'保时捷'@error/constitute.c/ReadImage/544

Porsche 是类的名称,应该是上传的图像文件的名称

帮助!

0 投票
2 回答
3065 浏览

python - 魔杖将透明背景变为黑色

我正在尝试使用 Wand 对 python 进行灰度化,但是当我这样做时

它将透明背景变成黑色。如果我使用白色背景的,它可以工作。我做错了什么。也因为灰度是

我在哪里可以在 Wand 中手动执行此操作,比如说我想稍微更改一下这些值。我查看了文档和各种论坛,但找不到任何答案,只有 Photoshop 的东西。

谢谢!

0 投票
1 回答
116 浏览

python - 将图像放置在具有纵横比填充的另一个图像上

我正在使用wand 0.4.1并想将图像放在另一个图像之上。关键是要放置的图像可以说是 400 像素宽,但我希望它可以拉伸到不同的宽度,比如 700 像素。图像应正确拉伸,纵横比保持不变。

我以为我可以以某种方式做到这一点composite,但不知道该怎么做,因为我似乎能够通过的唯一选择是topand left

我当前的代码是这样的:

我将如何做到这一点wand