问题标签 [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++ - 如何清理 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 编译不同类型的程序时,我是否必须找出并使用一组特定的参数?
c++ - Magick++ 错误:必须指定图像大小
目前,我正在尝试运行一个简单的 Magick++ 程序,该程序按照教程的说明打开图像文件:
但是,在尝试执行它时,我收到以下错误:
我认为这意味着我需要指定我正在阅读的图像的大小。我已经尝试过了,但仍然出现错误,然后我决定做一个奇怪的尝试,如果我尝试执行一个无用的程序,例如:
奇怪的是,我得到了同样的错误信息。可能是什么原因?我最近才开始涉足 C++,而且我对 Magick++ 还比较陌生。我已经在互联网上搜寻了答案,但没有找到任何答案。我希望这里有人有想法!
更新 1:我应该补充一点,“test.bmp”不是我以前听过、看过或接触过的文件或名称。这是这让我如此困惑的原因之一。
更新2:晚上睡觉后放弃,早上再试一次,我能够编译,然后执行程序没有任何错误。但是,现在程序什么也没做!我将使用 './testMagick.cpp' 执行它,即使我希望它做一些可见的事情,比如将调试语句打印到控制台——我什么也得不到。如果有的话,没有错误我现在更加困惑。
c++ - 使用 Magick++ 为文本添加背景
我正在尝试使用 Magick++ 在文本下添加红色背景。我的简单代码是:
它打印文本 OK,但文本没有红色背景。目前的结果是这样的:
但是,我想有背景的文字,像这样(背景照片购物的例子)
c++ - 如何选择图像旋转轴,Magick++?
我想围绕图像中的某个点旋转图像。我正在使用魔术++。如何选择旋转轴?有旋转功能,但它只允许我设置度数而不选择轴。
imagemagick - 无法为 png 文件设置 DPI ImageMagik
我正在使用 ImageMagik 6.7.8 c++ 库从原始图像创建图像。问题是我无法为文件类型 "png" 设置 DPI。而它与 jpeg,tiff 完美结合。以下是示例代码
如果我在调用 output.write 中将 PNG 替换为 JPG 或 TIFF,我会看到正确的 DPI
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.h或magick-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 应用程序而不更改任何库文件?
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 中做到这一点?
c++ - 使用 Magick++ 调整图像大小
读取 8 位 bmp 并使用 resize() 调整(缩小)它会导致它在内部变为 24 位。Scale() 保持深度,但当然看起来不太好,所以我更喜欢使用较慢的 resize()。
调用 resize() 后,depth() 仍然报告为 8 位,但不是(总颜色超过 400.000)
我尝试将深度设置为 8,但是在将磁盘从 24 位写入到 8 位时,这不会改变输出。还尝试写入 blob 指定格式 (BMP) 和 8 位。那也输出24位。
问题是如何在使用调整大小时保持相同的位深度?
c++ - ImageMagick compose:args="" 到 Magick++ API
我正在尝试将以下 ImageMagick 命令转换为 Magick++:
我有困难-define compose:args="25,75"
,我在 Magick++ 中找不到它的等价物。没有该compose:args=
部分,Magick++ 代码如下:
谁能compose:args
向我解释一下这部分,或者更好地告诉我它的 Magick++ 等价物吗?