问题标签 [magick++]
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.
c++ - 使用 Magick++ 的形态学
我正在尝试使用我正在编写的 c++ 程序中的 Magick++ 执行形态学。我找不到如何使用 C++ 中的形态学方法。
我正在尝试执行以下操作(我们正在从 perl 转换):
这不能只用 Magick++ 完成吗?
我找到了这个网站 http://www.imagemagick.org/api/MagickCore/morphology_8h.html,但我不确定这是否只是 ImageMagick 本身的源代码。
imagemagick - 有没有办法在编写修改后的 PixelPackets 时强制 Magick++ 跳过其缓存?
我编写了一个依赖于 Magick++ 的程序,仅用于导入和导出各种图像格式。它使用 Image.getPixels() 获取 PixelPacket,进行大量矩阵转换,然后在写入新图像之前调用 Image.syncPixels()。一般方法与Magick++ 文档中显示的示例相同。或多或少,相关代码是:
当我运行上面的代码时,新的图像文件(本例中为“image01_transformed.bmp”)最终与原始图像文件相同。但是,如果我将其写入不同的格式,例如“image01_transformed.ppm”,我会得到正确的结果:修改后的图像。我认为这是由于格式编码图像的缓存版本,并且 Magick++ 出于某种原因不知道图像实际上已更改,因此缓存已过时。image.blur(1.0, 0.1);
我通过在前面添加来测试这个想法image.syncPixels();
,并且强制这种无关紧要的更改确实会导致相同格式图像的正确结果。
有没有办法强制 Magick++ 意识到缓存已过时?我是不是一开始就用getPixels()
错syncPixels()
了?谢谢!
c++ - 使用 Magick++ 加载 ICC 配置文件
这是我的代码:
我正在尝试加载 ICC 文件并调整大小,但我不能。相反,我收到了这个错误:
c++ - 从 Magick++ 图像从内存 (libharu) 加载图像
我正在开发一些基于libharu的 c++ pdf 生成软件,我希望能够首先使用Magick++操作图像,然后使用 libharu 函数从内存中加载它们:
根据文档void *
,它本质上是从某个缓冲区加载图像。
我的目标是能够void*
从实例中获取这些数据,Magick::Image
并根据这些数据将此图像加载到我的 haru pdf 中。
我曾尝试写入 avoid*
或 aMagick::Blob
但到目前为止我唯一的成就是一些黑色矩形而不是我期望的图像。
有没有人有将原始图像数据从一个库转换为另一个库的经验?
我试图从内存中执行此操作的原因是因为到目前为止我正在将 Magick::Image 实例写入文件,然后从该文件中读取以加载然后在 haru 中,这在我的应用程序上下文中是一个巨大的性能损失。
c++ - WhiteThresholdImage魔法
如何将 WhiteThresholdImage 与 magick++ 一起使用?
我搜索它并找到了解决方案,所以我尝试:
错误:无法将 'Magick::Image' 转换为 'MagickLib::Image* {aka MagickLib::_Image*}' 以将参数 '1' 转换为 'unsigned int MagickLib::WhiteThresholdImage(MagickLib::Image*, const char*) '</p>
错误:未在此范围内声明“WhiteThresholdImage”
c++ - 在 Code::Blocks 中编译 magick++ 的东西
我正在用 magick++ 做一些实验,当我编译我的片段时,我只使用 g++ 和类型g++ test.cpp `Magick++-config --cppflags --cxxflags --ldflags --libs` -o prog
,但我最近爱上了 Code:Blocks,我想知道如何告诉它像上面那样编译?我自己无法弄清楚。
image - 在 ImageMagick / GraphicsMagick 中从文件中间读取图像
我有一个以一些数据开头的二进制文件。在此数据之后,文件中嵌入了 JPEG 图像。在图像之后,文件继续包含一些其他数据。我希望将图像用作 OpenGL 纹理。
目前,我知道用 Magick 创建 OpenGL 纹理的唯一方法是用 Magick 读取图像文件,将其写入 blob,然后将 blob.data() 上传到 opengl(来自此链接:http:// www.imagemagick.org/pipermail/magick-developers/2005-July/002276.html)。
我正在尝试使用 Magick++,但它只允许我指定文件名,而不是 C 样式的文件句柄或文件流......我唯一的选择是以下吗?:
将二进制文件中的 JPEG 图像部分保存为单独的临时文件,并让 Magick++ 读取该图像。我不希望这样做,因为写入磁盘会减慢我的程序速度。
将图像部分读入一个数组,以该数组为数据创建一个Blob,然后读取该Blob得到一张图像。我也不希望这样做,因为在获得图像后,我需要再次将图像数据写入另一个 blob,整个代码变得不必要地长。
切换到另一个库,如 DevIL,它提供了我想要的支持。不幸的是,DevIL 不像 Magick 那样功能丰富。
我还研究了 Magick 的核心 C API,我可以在其中指定一个文件句柄,但文档说文件句柄在读取图像后被 Magick 关闭,这对我的程序肯定不好(它会很漂亮很难让我的程序的其余部分重新打开二进制文件以继续处理......
如果有一种方法可以为 Magick 提供自定义 I/O 例程,或者更好的是,一种更简洁的方式将 Magick 与 OpenGL 一起使用,请赐教!
imagemagick - Magick++ 是否提供底层 API 的所有内容?
Magick++ 是否让您做 ImageMagick 可以做的所有事情?快速浏览文档并不能回答这个问题,例如,我找不到 Magick++ 相当于MagickSelectiveBlurImage。
如果 Magick++ 以这种方式受到限制,是否可以使用 C API 中的一些方法来填补空白?即 2 个 API 可以互操作吗?
PythonMagick 怎么样?
c++ - Magick++ 修剪不属于背景颜色的像素(图像顶部和底部的像素颜色相同)
以下尺寸为 1x9 的图像被修剪为 1x6,因为可能顶部的像素与底部的像素颜色相同,并且在修剪功能中,这些像素被识别为背景颜色,即使报告了 backgroundColor在执行修剪功能之前是#FFFFFF。
http://s1.postimage.org/a7r69yxsr/m_medium_bc.png
我唯一要做的就是对图像执行修剪。显式设置 backgroundColor 和/或 transparent() 没有区别。
- 为什么会发生这种情况,这是预期的行为吗?
- 这可以通过配置/属性设置/不更改 Graphicsk 库代码来解决吗?
- 如果没有,什么时候可以修复这个错误?您是否希望在接下来的几天内修复这种性质的错误?
这是代码:
c++ - 运行示例程序 Magick++ 将库导入 Visual C++ 2010 时出错
我将所有库和头文件复制到 Visual C++ 2010 中,但无法运行任何示例程序,因为过去 2 天我不断收到此错误。
值得一提的是,我下载了 Magick++ dll。
更新:
在包含 Magick++ 自带的库之后,
我现在收到这些错误,
这是什么意思 ?