iOS загружает динамическую маску слоя (т.е. маска слоя предоставляется вне кода) - PullRequest
1 голос
/ 21 февраля 2012

Ситуация: хотите применить интересную фоторамку к изображениям, а фоторамка реализована в виде маски слоя, можно ли динамически построить маску слоя, загрузив шаблон фоторамки вне кода obj-C, чтобы я могизменить слой кадра, даже не касаясь кода?

конечный результат будет примерно таким.http://a3.mzstatic.com/us/r1000/106/Purple/9e/b9/9b/mzl.rdrrpcgr.320x480-75.jpg, за исключением того, что край / рамка фотографии динамически загружаются за пределы приложения, а не встроены в приложение.

В идеале хотелось бы легко создать фоторамку в фотошопе в виде png-файла, гдечерный пиксель здесь обеспечит полную прозрачность ... и тогда я смогу загрузить эту фоторамку в приложение для iOS, так как слой с рамкой позволит нижнему слою полностью пройти, где бы слой маски не был черным ...

1 Ответ

2 голосов
/ 21 февраля 2012
+ (UIImage*) maskImage:(UIImage *)image withMask:(UIImage *)maskImage {

CGImageRef maskRef = maskImage.CGImage; 

CGImageRef mask = CGImageMaskCreate(CGImageGetWidth(maskRef),
                                    CGImageGetHeight(maskRef),
                                    CGImageGetBitsPerComponent(maskRef),
                                    CGImageGetBitsPerPixel(maskRef),
                                    CGImageGetBytesPerRow(maskRef),
                                    CGImageGetDataProvider(maskRef), NULL, false);

CGImageRef masked = CGImageCreateWithMask([image CGImage], mask);
return [UIImage imageWithCGImage:masked];
}

Тогда вы можете использовать этот метод с UIImage, который вы загружаете с URL.

URL может обслуживать другой UIImage или может принимать параметр, для которого загружается UIImageMask. Это отвечает на ваш вопрос?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...