0

我正在为 C 编写改进的 Perlin 噪声(我不太了解单纯形噪声)地形生成器,并且我实际上已经完成了 alpha 构建。但是,有一件事让我退缩:实际上保存了愚蠢的图像。我聘请了 MagickWand 来帮助我解决创建 PNG 的问题,它总体上看起来是一个不错的实现,具有大量有用的功能等,但整个事情的文档很少。没有教程,真的,只是一堆函数列表和一些示例程序。到目前为止,这是我的代码,基于此:

编辑:删掉一堆不相关的代码。

#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 从程序中的数组创建图像的正确方法是什么?

4

2 回答 2

0

该标头几乎肯定会尝试包含其他标头,因此您需要以下内容:

gcc -I"/Library/Frameworks/libWand.framework/Versions/6.3.0/Headers"

或者

gcc -I"/Library/Frameworks/libWand.framework/Versions/6.3.0/Headers/wand"
于 2012-03-07T09:57:09.260 回答
0

代码太多,可以总结为:

image *ConstituteImage(x, y, "I", IntegerPixel, grid, &exception);
write("image.png", image);

但是阅读您提供的 MagickWand 链接:

MagickWriteImageFile

MagickWriteImageFile() 将图像写入打开的文件描述符。MagickWriteImageFile 方法的格式为:

MagickBooleanType MagickWriteImageFile ( MagickWand *wand, FILE *file ); 每个参数的说明如下:

wand:魔杖。文件:文件描述符。

所以很明显你必须打电话:

MagickBooleanType MagickWriteImageFile ( MagickWand *wand, FILE *file );
于 2012-03-07T09:52:58.060 回答