MagickWand для C: отсутствие документации означает больше ошибок для меня - PullRequest
0 голосов
/ 07 марта 2012

Я пишу улучшенный генератор рельефа Perlin noise (я не совсем понимаю симплексный шум) для C, и я практически закончил сборку alpha.Тем не менее, есть одна вещь, сдерживающая меня: на самом деле сохранение глупого изображения.Я нанял MagickWand, чтобы помочь мне решить проблему создания PNG, и в целом это выглядит как хорошая реализация с множеством полезных функций и т. Д., Но в целом документации очень мало.На самом деле никаких учебных пособий, просто куча списков функций и несколько примеров программ.Вот мой код, основанный на this:

EDIT: вырезать кучу ненужного кода.

#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 для C?

Ответы [ 2 ]

0 голосов
/ 07 марта 2012

этот заголовок почти наверняка пытается включить другие заголовки, поэтому вам нужно что-то вроде:

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

или

gcc -I"/Library/Frameworks/libWand.framework/Versions/6.3.0/Headers/wand"
0 голосов
/ 07 марта 2012

Слишком много кода, его можно суммировать следующим образом:

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

Но, прочитав предоставленную вами ссылку MagickWand:

MagickWriteImageFile

MagickWriteImageFile () пишетизображение в дескриптор открытого файла.Формат метода MagickWriteImageFile:

MagickBooleanType MagickWriteImageFile (MagickWand * wand, файл FILE *);Ниже приводится описание каждого параметра:

палочка: волшебная палочка.file: дескриптор файла.

Так что понятно, что вам нужно позвонить:

MagickBooleanType MagickWriteImageFile ( MagickWand *wand, FILE *file );
...