2014-02-22 42 views
0

我试图实现内爆图像内区域的功能。我在iOS应用程序中使用MagickWand,但通过MagickWand API,我无法指定想要内爆的图像区域(通过x和y坐标)。 Implode似乎只将半径作为参数,似乎将图像的中心用作内爆操作的参考点。适用于iOS的MagickWand - 内爆图像

目前,我做:

MagickImplodeImage(self->wand,-1.0); 
MagickWandGenesis(); 
self->wand = NewMagickWand(); 

没有人有任何经验,这样做呢?另外,有没有其他图像处理库可以推荐用于iOS?

回答

0

ImageMagick的Geometry系统需要在implode操作之前调用。 MagickGetImageRegion将创建一个新的图像爆炸,MagickCompositeImage将应用子图像回来。示例应用程序看起来像...

include <stdlib.h> 
#include <stdio.h> 
#include <wand/MagickWand.h> 

int main (int argc, const char ** argv) 
{ 
    MagickWandGenesis(); 
    MagickWand * wand = NULL; 
    MagickWand * impl = NULL; 
    wand = NewMagickWand(); 
    MagickReadImage(wand,"source.jpg"); 
    // Extract a MBR (minimum bounding rectangle) of area to implode 
    impl = MagickGetImageRegion(wand, 200, 200, 200, 100); 
    if (impl) { 
    // Apply implode on sub image 
    MagickImplodeImage(impl, 0.6666); 
    // Place the sub-image on top of source 
    MagickCompositeImage(wand, impl, OverCompositeOp, 200, 100); 
    } 
    MagickWriteImage(wand, "output.jpg"); 
    if(wand)wand = DestroyMagickWand(wand); 
    if(impl)impl = DestroyMagickWand(impl); 
    MagickWandTerminus(); 
    return 0; 
} 
相关问题