Iphone - маскирующие изображения JPG - PullRequest
1 голос
/ 23 февраля 2011

Я кодирую мозаику, и мне нужно маскировать изображения для создания кусочков головоломки.

Я использую картинки с онлайн-сервера, и они * .JPG.Когда я маскирую их, область, которая должна быть прозрачной, является черной.

Можно ли программно добавить альфа-канал?Если да, можете ли вы показать мне, как?

Большое спасибо, Андрей

1 Ответ

4 голосов
/ 26 февраля 2011

Я нашел ответ:

CGImageRef imageRef = self.CGImage;
size_t width = CGImageGetWidth(imageRef);
size_t height = CGImageGetHeight(imageRef);

// The bitsPerComponent and bitmapInfo values are hard-coded to prevent an "unsupported parameter combination" error
CGContextRef offscreenContext = CGBitmapContextCreate(NULL,
                                                      width,
                                                      height,
                                                      8,
                                                      0,
                                                      CGImageGetColorSpace(imageRef),
                                                      kCGBitmapByteOrderDefault | kCGImageAlphaPremultipliedFirst);

// Draw the image into the context and retrieve the new image, which will now have an alpha layer
CGContextDrawImage(offscreenContext, CGRectMake(0, 0, width, height), imageRef);
CGImageRef imageRefWithAlpha = CGBitmapContextCreateImage(offscreenContext);
UIImage *imageWithAlpha = [UIImage imageWithCGImage:imageRefWithAlpha];

// Clean up
CGContextRelease(offscreenContext);
CGImageRelease(imageRefWithAlpha);

return imageWithAlpha;
...