我正在尝试为ImageMagickNet类添加自定义函数.它应该使用IsSimilarImage magickImageMagick.NET项目中的方法,但我对是否必须通过Magick ++路由此方法感到困惑,因为.NET端可用的任何功能都源于Magick ++.
我已经问过这个问题,但那是关于FreeImage.现在我正在尝试做同样的事情ImageMagick(更正确,有Magick++).
我需要的是获得图像中像素的RGB值,并能够将其打印到屏幕上.我在ImageMagick论坛上问了这个,但似乎没有人在那里.:-(有人可以帮帮忙吗?
我已经下载了ImageMagick源代码,编译了向导以创建用于静态链接的Visual Studio解决方案,并在我的示例项目中包含了静态库Magick ++项目(下面的代码).我还添加了对该项目的依赖,并在解决方案中包含.lib文件,没有任何帮助.
#include <Magick++.h>
int main()
{
Magick::Image image;
bool test = image.isValid();
return 0;
}
Run Code Online (Sandbox Code Playgroud)
这会产生几个链接器错误,例如:
未解析的外部符号"__declspec(dllimport)public:virtual __thiscall Magick :: Image ::〜Image(void)"(__ imp _ ?? 1Image @ Magick @@ UAE @ XZ)在函数_main中引用
为什么不能找到实现?
我正在使用Visual Studio 2010 Beta 2.
抱歉,如果标题没有任何意义。
目前,imagemagick 转换实用程序上的以下参数非常适合我的需要。我正在尝试获取 .svg 文件,将其放大并将其写入为 png 文件。
convert -density 36 home.svg home_1.png
Run Code Online (Sandbox Code Playgroud)
不幸的是,我需要使用 Magick++(ImageMagick 的 C++ 接口/API),但我似乎无法在 Magick++ 中获得等效的操作。
有没有 ImageMagick 专业人士可以帮助我解决这个问题?
我当前的代码是:
image.density(Geometry(36,36));
image.read( "Character.svg" );
image.write( "xx.png" );
Run Code Online (Sandbox Code Playgroud)
我尝试过移动image.density()该部分,但我的图像永远不会改变。它只是被光栅化并保存为 png 格式。
我正在尝试将ImageMagick Magick ++用于VS2010中的C++项目.我从这里安装了库:klick
然后在我的项目中,我将c:/ program files/ImageMagick-6.6.6-Q16/include添加到include文件夹中.然后我尝试使用Magick ++和这段代码:
#include <Magick++.h>
void main(int argc, char ** argv){
InitializeMagick(*argv);
}
Run Code Online (Sandbox Code Playgroud)
但这不起作用!VS2010返回以下错误:
error LNK2001: unresolved external symbol "__declspec(dllimport) void __cdecl Magick::InitializeMagick(char const *)" (__imp_?InitializeMagick@Magick@@YAXPBD@Z)
error LNK1120: 1 unresolved externals
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?
非常感谢您的帮助!
更新:
将Linker - > Input - > Additionnal Dependencies设置为:
kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;CORE_RL_Magick++_.lib
Run Code Online (Sandbox Code Playgroud)
和Linker - > General - > Additionnal Library目录:
C:\Program Files\ImageMagick-6.6.6-Q16\lib
Run Code Online (Sandbox Code Playgroud)
它仍会导致相同的错误......
更新2
在C:\ Program Files\ImageMagick-6.6.6-Q16\lib中打开.lib文件会导致此错误:

更新3
CORE_RL_Magick ++ _.lib确实包含?InitializeMagick @ Magick @@ YAXPEBD @ Z,但不是吗?InitializeMagick @ Magick @@ YAXPBD @ Z. 这是否意味着.lib文件已损坏? …
c++ imagemagick visual-studio-2010 unresolved-external magick++
我正在研究基于libharu的 c ++中的一些pdf生成软件,我希望能够首先使用Magick ++操作图像,然后使用libharu函数从内存加载它们:
HPDF_LoadRawImageFromMem()
Run Code Online (Sandbox Code Playgroud)
根据文档,本质上从一些void *缓冲区加载图像.
我的目标是能够void*从Magick::Image实例中获取此数据,并根据此数据将此图像加载到我的haru pdf中.
我曾尝试写过一个void*或一个Magick::Blob但是我迄今为止唯一的成就是一些黑色矩形而不是我期待的图像.
有没有人有将Raw图像数据从一个库转换为另一个库的经验?
我试图从内存中执行此操作的原因是因为到目前为止,我正在将Magick :: Image实例写入文件,然后从此文件中读取以加载到haru,这在我的应用程序的上下文中是一个巨大的性能影响.
自从我取得任何进展以来已经超过4个小时,搜索文档和链接,坦率地说,我没有想法.所以这里.
背景
问题
#include <Magick++.h>问题
其他方案
#include <Magick++/Include.h>),它会为每个头文件带来C1083错误.
cl myCameraProgram.cpp /EHsc /link DSLRRemote "COMPLETE_DIR_PATH/Magick++.h" 但不起作用cl myCameraProgram.cpp /EHsc /link DSLRRemote /l "COMPLETE_DIR_PATH/Magick++.h"任何帮助或建议或指示将非常感谢,谢谢!
========编辑========
感谢大家的提示.
我正在尝试将Node应用程序推送到heroku,但我使用的是imagemagick-native,看起来Heroku遇到了Magick ++的问题 - 我尝试过使用自定义构建包但似乎找不到支持Magick ++的版本.(1)这是问题吗(2)有没有解决方案在Heorku上运行Magick ++?
-----> Node.js app detected
-----> Resolving engine versions
Using Node.js version: 0.10.20
Using npm version: 1.3.11
-----> Fetching Node.js binaries
-----> Vendoring node into slug
-----> Installing dependencies with npm
npm WARN package.json upload@0.1.3 'repositories' (plural) Not supported.
npm WARN package.json Please pick one as the 'repository' field
> bson@0.2.2 install /tmp/build_d2a98573-34b8-42d9-91ff-81c4ca84feb9/node_modules/mongoose/node_modules/mongodb/node_modules/bson
> (node-gyp rebuild 2> builderror.log) || (exit 0)
make: Entering directory `/tmp/build_d2a98573-34b8-42d9-91ff-81c4ca84feb9/node_modules/mongoose/node_modules/mongodb/node_modules/bson/build'
CXX(target) Release/obj.target/bson/ext/bson.o
SOLINK_MODULE(target) Release/obj.target/bson.node
SOLINK_MODULE(target) Release/obj.target/bson.node: Finished
COPY …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用 C++ 从 PDF 文件中提取所有图像。我陷入了解码 CCITT 编码图像的困境。
有谁知道这方面的开源代码吗?
我使用 ImageMagick Magick++ 库,是否也可以使用该库进行解码?
感谢您的帮助!
每个人。
有我的 CMakeLists。
cmake_minimum_required(VERSION 3.5)
project(Blah)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
set(SOURCE_FILES main.cpp)
add_executable(Blah ${SOURCE_FILES})
find_package(ImageMagick)
find_package(ImageMagick COMPONENTS Magick++)
find_package(ImageMagick COMPONENTS convert)
find_package(ImageMagick COMPONENTS Magick++ convert)
include_directories(${ImageMagick_INCLUDE_DIRS})
target_link_libraries(Blah ${ImageMagick_LIBRARIES})
Run Code Online (Sandbox Code Playgroud)
我的代码看起来像这样。
#include <iostream>
#include <Magick++.h>
using namespace std;
int main(int argc, char **argv) {
Magick::Image image("640*480", "white");
}
Run Code Online (Sandbox Code Playgroud)
它报告一些错误,如undefined reference to 'Magick::Color::Color(char const*)'. 解决方案似乎我应该写类似g++ 'Magick++-config --cxxflags --cppflags' -o example example.cxx 'Magick++-config --ldflags --libs'.
可悲的是,我只是不知道如何为其编写正确的 CMakeLists 项,或者为整个 Magick++ 编写。(我学到了一些关于 CMake 的基础知识。可惜没用。)
如果你能帮助我,非常感谢!