问题标签 [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.

0 投票
1 回答
1991 浏览

c++ - 如何清理 C++ 编译器命令?

我尽可能地尝试搜索这样的问题,但我根本不知道如何准确地提出这个问题。如果之前已经回答过这个问题,或者这是一个微不足道的问题,我深表歉意。我是 C++ 的大(而且非常吓人!)世界的新手。未来我会尽力而为。

让我试着解释一下我的意思:

我在 Linux Ubuntu 14.04 上。在 Ubuntu 上,要编译我编写的 C++ 程序,例如,假设某个文件 myProgram.cpp,我 cd 到其目录并在终端中键入以下内容:

这样,我就可以输入:

运行 myProgram。这既简单又令人满意——我从阅读 C++ Primer 中学到了这一点。在发现自己用 C++ 编写代码很舒服之后,我决定继续给自己一个项目,其中涉及使用 Image Magick,特别是它的 C++ API:Magick++。但是,现在,如果我想编译一些东西,我必须输入这个丑陋的烂摊子:

使我的代码编译和执行。这看起来很混乱,当我试图查看 CImg 是否更好时,结果发现它需要自己的一组参数,例如-lm,-lpthread-lX11. 事实证明,要使用 C++11 编译,我必须编写-std=c++0x. 所以我的问题是:

有没有办法在终端中简化/清理我的编译语句,或者每当我使用不同的 API 编译不同类型的程序时,我是否必须找出并使用一组特定的参数?

0 投票
0 回答
856 浏览

c++ - Magick++ 错误:必须指定图像大小

目前,我正在尝试运行一个简单的 Magick++ 程序,该程序按照教程的说明打开图像文件:

但是,在尝试执行它时,我收到以下错误:

我认为这意味着我需要指定我正在阅读的图像的大小。我已经尝试过了,但仍然出现错误,然后我决定做一个奇怪的尝试,如果我尝试执行一个无用的程序,例如:

奇怪的是,我得到了同样的错误信息。可能是什么原因?我最近才开始涉足 C++,而且我对 Magick++ 还比较陌生。我已经在互联网上搜寻了答案,但没有找到任何答案。我希望这里有人有想法!

更新 1:我应该补充一点,“test.bmp”不是我以前听过、看过或接触过的文件或名称。这是这让我如此困惑的原因之一。

更新2:晚上睡觉后放弃,早上再试一次,我能够编译,然后执行程序没有任何错误。但是,现在程序什么也没做!我将使用 './testMagick.cpp' 执行它,即使我希望它做一些可见的事情,比如将调试语句打印到控制台——我什么也得不到。如果有的话,没有错误我现在更加困惑。

0 投票
2 回答
987 浏览

c++ - 使用 Magick++ 为文本添加背景

我正在尝试使用 Magick++ 在文本下添加红色背景。我的简单代码是:

它打印文本 OK,但文本没有红色背景。目前的结果是这样的:

在此处输入图像描述

但是,我想有背景的文字,像这样(背景照片购物的例子)

在此处输入图像描述

0 投票
1 回答
359 浏览

c++ - 如何选择图像旋转轴,Magick++?

我想围绕图像中的某个点旋转图像。我正在使用魔术++。如何选择旋转轴?有旋转功能,但它只允许我设置度数而不选择轴。

0 投票
1 回答
327 浏览

imagemagick - 无法为 png 文件设置 DPI ImageMagik

我正在使用 ImageMagik 6.7.8 c++ 库从原始图像创建图像。问题是我无法为文件类型 "png" 设置 DPI。而它与 jpeg,tiff 完美结合。以下是示例代码

如果我在调用 output.write 中将 PNG 替换为 JPG 或 TIFF,我会看到正确的 DPI

0 投票
2 回答
295 浏览

c++ - 在 x86_64 linux 系统上构建 x86 ImageMagick 应用程序

我有使用 ImageMagic++ 库的 x86 C++ 应用程序。我也有 CentOS 7 x86_64 的机器。我需要在这台机器上构建我的应用程序。我已经安装了 i686 ImageMagick 库:

当我尝试构建我的应用程序时,出现错误:

发生这种情况是因为文件/usr/include/ImageMagick/magick/magick-config.h使用宏定义__WORDSIZE来确定必须包含哪个文件magick-config-64.hmagick-config-32.h。在我的 CentOS 7 x86_64 机器上,这个宏等于 64,ImageMagick 尝试包含magick-config-64.h但 i686 库没有这个,只有magick-config-32.h

如何在 CentOS 7 x86_64 机器上使用 x86 ImageMagick 库构建 x86 应用程序而不更改任何库文件?

0 投票
1 回答
1300 浏览

c++ - 在 Qt Creator 中使用 Magick++

我正在创建一个带有我单独编写的后端表示的 Qt 小部件。后端使用 Magick++,我可以从命令行编译它:

g++ -c ../SpriteCreator/WriteGIF.cpp sprite.cpp -I ../SpriteCreator/ Magick++-config --cxxflags --cppflags Magick++-config --ldflags --libs-O2

但是当我尝试编译项目 Qt Creator 它告诉我

/home/tpope/obeyYourThirst/qtSpriteEditor/backend/sprite.cpp:15:错误:Magick++.h:没有这样的文件或目录#include <Magick++.h>

我将 Magick++.h 的路径添加到了 INCLUDEPATH,但现在它出现了类似于此的错误:

/home/tpope/obeyYourThirst/qtSpriteEditor/backend/sprite.cpp:66:错误:未定义对“Magick::InitializeMagick(char const*)”的引用

每次使用 Magick 功能。它似乎不包括图书馆。我如何在 Qt Creator 中做到这一点?

0 投票
0 回答
1509 浏览

c++ - 使用 Magick++ 调整图像大小

读取 8 位 bmp 并使用 resize() 调整(缩小)它会导致它在内部变为 24 位。Scale() 保持深度,但当然看起来不太好,所以我更喜欢使用较慢的 resize()。

调用 resize() 后,depth() 仍然报告为 8 位,但不是(总颜色超过 400.000)

我尝试将深度设置为 8,但是在将磁盘从 24 位写入到 8 位时,这不会改变输出。还尝试写入 blob 指定格式 (BMP) 和 8 位。那也输出24位。

问题是如何在使用调整大小时保持相同的位深度?

0 投票
1 回答
796 浏览

c++ - Magick++ - 减少灰度图像的位深度

我正在尝试使用 Magick++ 将 PNG 的通道位深度从 8 减少到 4。我正在使用以下代码来执行此操作:

对于彩色图像,这很好用。但是对于灰度图像,ImageMagick 做了一些奇怪的事情。它将整个内容压缩到图像的左半部分,并在右半部分显示随机像素。

例如这里的狒狒: 在此处输入图像描述

用上面的代码变成了这个:在此处输入图像描述

有人对这种行为有解释和/或知道如何解决这个问题吗?

或者这甚至可能是图像魔术的错误?

0 投票
1 回答
543 浏览

c++ - ImageMagick compose:args="" 到 Magick++ API

我正在尝试将以下 ImageMagick 命令转换为 Magick++:

我有困难-define compose:args="25,75",我在 Magick++ 中找不到它的等价物。没有该compose:args= 部分,Magick++ 代码如下:

谁能compose:args向我解释一下这部分,或者更好地告诉我它的 Magick++ 等价物吗?