我正在为C编写一个改进的Perlin噪声(我不太了解单纯噪声)地形生成器,我几乎完成了alpha构建。然而,有一件事阻止我:实际上保存了愚蠢的图像。我招募MagickWand来帮助我解决PNG创建的问题,它看起来像一个很好的实现,有大量有用的功能等,但整个事情的文档很少。没有教程,实际上,只是一堆函数列表和一些示例程序。这是我目前为止的代码,基于this:
编辑:删掉一堆不相关的代码。
#include <stdio.h>
#include <stdlib.h>
#include "mt.h"
#include "diamondsquare.h"
#include "/Library/Frameworks/libWand.framework/Versions/6.3.0/Headers/wand/MagickWand.h"
int main () {
unsigned long seed = 0, x = 0, y = 0, initial = 0, range = 0;
int smooth = 0, fail = 1, index1 = 0, index2 = 0, exception = 0;
char flagchar1 = 'n';
// Some imperative code. Not relevant.
image *ConstituteImage(x, y, "I", IntegerPixel, grid, &exception);
write("image.png", image);
}
至少,我知道这是错误的链接(编译在wand.h中返回一个错误,它无法找到其中一个标题)。使用MagickWand for C从程序中的数组创建图像的正确方法是什么?
答案 0 :(得分:0)
代码过多,可以概括为:
image *ConstituteImage(x, y, "I", IntegerPixel, grid, &exception);
write("image.png", image);
但请阅读您提供的MagickWand链接:
MagickWriteImageFile
MagickWriteImageFile()将图像写入打开的文件描述符。该 MagickWriteImageFile方法的格式是:
MagickBooleanType MagickWriteImageFile(MagickWand *魔杖,FILE *文件 );每个参数的描述如下:
魔杖:魔杖。 file:文件描述符。
所以很明显你必须致电:
MagickBooleanType MagickWriteImageFile ( MagickWand *wand, FILE *file );
答案 1 :(得分:0)
该标题几乎肯定会尝试包含其他标题,因此您需要以下内容:
gcc -I"/Library/Frameworks/libWand.framework/Versions/6.3.0/Headers"
或
gcc -I"/Library/Frameworks/libWand.framework/Versions/6.3.0/Headers/wand"