c - 如何使用 C 从 ImageMagick Wand 中提取 PPM 图像属性?

标签 c image imagemagick

为了将几乎所有类型的图像转换为 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 */

最佳答案

From ImageMagick Forum

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/

相关文章:

c - 在 C 中使用 open() 函数对文件权限产生意外结果(-wS-wx--T)

c - 多个图像的内存缓冲区

java - Android - 想要使用cursorLoader在 ListView 中交替图标图像

C结构对齐

c - GCC : weird errors with -O0, 无 无

ruby-on-rails - 'identify'命令无法识别图像文件。 (heroku)

linux - ImageMagick - 带引号的数字作为转换标签参数会导致命令失败

php - 在 Imagemagick for linux 中,如何对目录进行批量转换

c - 罢工行为

c# - 像素编程续