Как я могу применить эффект объектива к моему пользовательскому изображению?

#iphone #image-processing #uiimage

#iPhone #обработка изображений #uiimage

Вопрос:

Как я могу применить эффект объектива к моему пользовательскому изображению, как показано здесь http://processing.org/learning/topics/lens.html?

Ответ №1:

Для этого вы можете использовать фреймворк Cocos2D.

Если вы решите использовать его, вот как вы можете легко применить эффект объектива:

 - (void)aFunction
{
    const CGSize size = [[CCDirector sharedDirector] winSize];

    // Init and position your image
    CCSprite *img = [CCSprite spriteWithFile:@"images.png"];
    img.position = ccp(size.width/2.f, size.height/2.f);
    [self addChild:img];

    // Create action and start it
    id lens = [CCLens3D actionWithPosition:ccp(size.width/2.f, size.height/2.f)
                                    radius:240.f
                                      grid:ccg(15.f,10.f)
                                  duration:0.f];
    [img runAction:lens];
}
  

Вероятно, ваш проект является проектом UIKit, поэтому вы не хотите перезапускать свой проект с нуля. Итак, в проекте cocos2d-ios Xcode есть много примеров того, что вы можете сделать.

И есть пример, который называется AttachTest, и он показывает вам, как реализовать EAGLView (который является подклассом UIView) в проекте UIKit.

Комментарии:

1. Спасибо, но я хочу создать этот эффект с нуля. Можете ли вы предоставить мне какой-нибудь код или алгоритм?

2. @dpart Вам следует взглянуть на то, как Cocos2D это делает. Он основан на фреймворке OpenGL, я думаю, вы могли бы взять из него некоторый код для себя…