Objective-C. Программное преобразование цветной картинки в черно-белую (grayscale) с сохранением альфа-канала

{lang: 'ru'}

Недавно мне нужно было решить эту задачу для одного из проектов под iPhone. Естественное, на помощь я позвал Google, который показал мне ссылки сразу на несколько вариантов решения. Однако не все они справились с поставленной задачей должным образом. Все реализации, испробованные мною в начале, «забывали» про альфа-канал. Они преобразовывали его в черный цвет, что было для меня неприемлемо. Альфа-канал должен был сохраняться. Поэтому я стал просматривать варианты более внимательно. Нужную мне реализацию я нашел акурат под ранее не подошедшей. На ней я и остановился. А ниже привожу её исходный код на Objective-C. Для себя, чтобы не искать потом снова, а может и еще кому-нибудь пригодится.

В результативности приведенного Objective-C кода я убедился сам. Результат отличный — рекомендую :)
Полезная статья? Их будет больше, если вы поддержите меня!