iOS: как обрезать изображение до полезных частей (убрать прозрачную рамку) - PullRequest
11 голосов
/ 02 октября 2011

Я пытаюсь автоматически показать полезную часть в основном прозрачного png в приложении для iPhone.Изображение может быть, скажем, 500х500, но в основном оно прозрачное.Где-то внутри этого изображения находится непрозрачная часть, которую я хочу показать пользователю как можно больше, поэтому я хочу обрезать как можно больше с каждой стороны (или сделать так, чтобы она растягивалась и перемещалась внутриUIImageView. Есть идеи?

Ответы [ 2 ]

1 голос
/ 02 октября 2011

С помощью Quartz преобразуйте изображение в растровое изображение, изучите биты альфа-канала, чтобы найти границы непрозрачной части изображения.

Вот Apple Tech Note: Получение данных пикселей из объекта CGImage . Вы можете получить CIImage из UIImage с:

CGImageRef imageRef = [uiImage CGImage];
0 голосов
/ 09 июня 2019

Я сделал метод для этого, который сканирует все пиксели в изображении в поисках прозрачных столбцов или строк (с допуском 0,01) и непрозрачных пикселей, затем соответствующим образом обрезает изображение.1002 *

...