Маска UIImage iOS 8

Я использую для маскирования uiimages в iOS 7, используя следующий код, который отлично работает. Но теперь, в iOS 8, он ничего не делает, вместо того, чтобы вернуть мне исходное изображение + маску, он возвращает мне черное изображение.

- (UIImage*) maskImage:(UIImage *)image withMask:(UIImage *)maskImage { CGImageRef imgRef = [image CGImage]; CGImageRef maskRef = [maskImage CGImage]; CGImageRef actualMask = CGImageMaskCreate(CGImageGetWidth(maskRef), CGImageGetHeight(maskRef), CGImageGetBitsPerComponent(maskRef), CGImageGetBitsPerPixel(maskRef), CGImageGetBytesPerRow(maskRef), CGImageGetDataProvider(maskRef), NULL, false); CGImageRef masked = CGImageCreateWithMask(imgRef, actualMask); return [UIImage imageWithCGImage:masked]; 

}

Вот как работает мое приложение: – оригинальное изображение будет размытым – тогда применяется маска (круг, квадрат, любая форма, которая является .png изображением) – возвращает размытое изображение, а маска должна обрезать размытое изображение и видеть позади оригинальное изображение без размытия. он работает на iOS 7, но в iOS 8 код о маскировке (выше) не работает. есть идеи?

One Solution collect form web for “Маска UIImage iOS 8”

Используйте этот метод для маскировки изображения в iOS 8.0. Я также использовал этот метод в моем рабочем коде и отлично работал.

 - (UIImage*) maskImage:(UIImage *)image withMask:(UIImage *)maskImage { CGImageRef imgRef = [image CGImage]; CGImageRef maskRef = [maskImage CGImage]; int maskWidth = CGImageGetWidth(maskRef); int maskHeight = CGImageGetHeight(maskRef); // round bytesPerRow to the nearest 16 bytes, for performance's sake int bytesPerRow = (maskWidth + 15) & 0xfffffff0; int bufferSize = bytesPerRow * maskHeight; // allocate memory for the bits CFMutableDataRef dataBuffer = CFDataCreateMutable(kCFAllocatorDefault, 0); CFDataSetLength(dataBuffer, bufferSize); // the data will be 8 bits per pixel, no alpha CGColorSpaceRef colourSpace = CGColorSpaceCreateDeviceGray(); CGContextRef ctx = CGBitmapContextCreate(CFDataGetMutableBytePtr(dataBuffer), maskWidth, maskHeight, 8, bytesPerRow, colourSpace, kCGImageAlphaNone); // drawing into this context will draw into the dataBuffer. CGContextDrawImage(ctx, CGRectMake(0, 0, maskWidth, maskHeight), maskRef); CGContextRelease(ctx); // now make a mask from the data. CGDataProviderRef dataProvider = CGDataProviderCreateWithCFData(dataBuffer); CGImageRef mask = CGImageMaskCreate(maskWidth, maskHeight, 8, 8, bytesPerRow, dataProvider, NULL, FALSE); CGDataProviderRelease(dataProvider); CGColorSpaceRelease(colourSpace); CFRelease(dataBuffer); CGImageRef masked = CGImageCreateWithMask(imgRef, mask); return [UIImage imageWithCGImage:masked]; } 
  • Как добавить новое устройство в специальный профиль распространения?
  • Отчет о сбое XCode (уже символизированный) Отсутствующие номера строк
  • IOS: сохранение массива с помощью NSUserDefault
  • iOS 10 с XCode 8 GM заставил NSUserDefaults прерывисто работать
  • Перенос слов для NSMutableAttributedString
  • Установка названия динамического представления из представления таблицы
  • Может ли Xcode найти / заменить в XIB?
  • Местоположение приложения Xcode 6 iPhone Simulator
  • Покупка в приложении уже куплена
  • Приложение разбилось из-за InterfaceOrientation
  • Как вставить новые ячейки в UITableView?
  • Interesting Posts

    Повернуть изображение более чем на 180 градусов

    Не удалось найти спецификацию `GoogleSymbolUtilities (~> 1.1)`, зависящую от `FirebaseAnalytics`

    iOS framework / library для представления слайдов Powerpoint?

    Ошибка UICollectionViewController в Swift 3.0: должна быть инициализирована параметром макета не-nil

    Измените раздел строки UITableView во время выполнения

    Не удалось получить токен доступа через FBSDKLoginKit, когда я пытаюсь войти в iOS sdk

    Лучший способ удалить некоторые аннотации из MKMapView

    kABPersonEmailProperty возвращает странные вещи

    Возможно ли, что слабая ссылка может быть сборкой мусора, когда я использую ее родительский элемент в IOS?

    Core Data – fetch-response не может открыть файл

    Изменение цвета текста кнопки, не отражающего

    Цвет границы UIView в построителе интерфейса не работает?

    Facebook auth.extendssoaccesstoken код ошибки 10

    iOS TableView отображает один и тот же объект в каждой ячейке

    Обновления App Store для iOS – исправление?

    PhoneC: Разработка iOS проста с помощью XCode, Swift3, UITableView, cocatouch, давайте создадим приложения для iPhone, iPad и Macbook.