Если вы хотите сохранить файл изображения PNG в памяти, используйте MagickGetImageBlob
.
size_t length;
unsigned char * address;
address = MagickGetImageBlob(wand, &length);
if (address != (unsigned char *)NULL) {
printf("Wrote %zu bytes of data to %p address\n", length, address);
}
Если вы хотите сохранить пиксель data в памяти, используйте MagickExportImagePixels
.
MagickBooleanType status;
size_t width = MagickGetImageWidth(wand);
size_t height = MagickGetImageHeight(wand);
size_t channels = 3; // "RGB"
size_t data_length = sizeof(unsigned char) * channels * width * height;
unsigned char * data = malloc(data_length);
status = MagickExportImagePixels(wand, 0, 0, width, height, "RGB", CharPixel, data);
if (status == MagickTrue) {
fprintf(stdout, "Wrote %zu bytes of data to %p address\n", data_length, data);
}