Сначала получите изображение в необработанном формате (необработанное, как в необработанных байтах для каждого пикселя [rgb] [rgb]), затем управляйте пикселями и конвертируйте обратно из необработанного формата в изображение.
Здесь вы можете найти информацию о том, как преобразовать uiimage в необработанные данные пикселей, например:
Необработанный в UIImage: Создание UIImage из необработанных данных RGBA
UIimage to Raw: Могу ли я редактировать пиксели свойства UIImage CGImage
Если вам нужны геометрические преобразования, вы можете использовать отображение координат или opengl и использовать ваше изображение в качестве текстуры накакая-то сетка, манипулируйте сеткой (геометрически) и визуализируйте сцену обратно в изображение.
Вам не нужно знать, как изображения кодируются в PNG или JPG, это может сделать система за вас.Вам просто нужно знать, чего вы хотите достичь, а затем построить свой собственный алгоритм.
Получайте удовольствие!