2012-12-11 33 views
1

爲了將幾乎任何類型的圖像轉換爲PPM,我使用ImageMagick的魔杖API。 從魔杖中,我如何提取寬度,高度,模態和原始RGB數據的PPM屬性? 這是一些骨架代碼。如何使用C從ImageMagick魔杖中提取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 */ 

回答

0

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);