为了将几乎所有类型的图像转换为 PPM,我使用了 ImageMagick 的 wand API。 如何从魔杖中提取宽度、高度、modval 和原始 RGB 数据的 PPM 属性? 这是一些框架代码。
非常感谢您阅读问题。
/* Read an image. */
MagickWandGenesis();
magick_wand = NewMagickWand();
status = MagickReadImage(magick_wand, argv[1]);
if (status == MagickFalse)
ThrowWandException(magick_wand);
/* TODO convert to P6 PPM */
/* TODO get PPM properties */
ppm->width = ...
ppm->height = ...
ppm->modval = 3 * ppm->width;
ppm->data = malloc(ppm->width * ppm->height * 3);
/* TODO fill ppm->data */
最佳答案
width = MagickGetImageWidth(magick_wand);
height = MagickGetImageHeight(magick_wand);
ppm->width = width;
ppm->height = height;
ppm->modval = 3 * width;
ppm->data = malloc (3 * width * height);
status = MagickExportImagePixels(magick_wand, 0, 0, width, height, "RGB",
CharPixel, ppm->data);
关于c - 如何使用 C 从 ImageMagick Wand 中提取 PPM 图像属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13821851/