我正在为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 );

09-07 22:23