我正在为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从程序中的数组创建图像的正确方法是什么?
最佳答案
代码太多,可以总结为:
image *ConstituteImage(x, y, "I", IntegerPixel, grid, &exception);
write("image.png", image);
但是,请阅读您提供的MagickWand链接:
MagickWriteImageFile
MagickWriteImageFile()将图像写入打开的文件描述符。的
MagickWriteImageFile方法的格式为:
MagickBooleanType MagickWriteImageFile(MagickWand * wand,FILE * file
);每个参数的说明如下:
魔杖:魔术棒。 file:文件描述符。
因此很明显,您必须致电:
MagickBooleanType MagickWriteImageFile ( MagickWand *wand, FILE *file );