У меня есть карта высоты (изображение в градациях серого, с черным как самое низкое и белое, как самые высокие области), и я пытаюсь изолировать все выше или ниже определенного порога. Моя цель состоит в том, чтобы иметь возможность принимать любую карту высот и возвращать новый UIImage, где все под определенной высотой (т. Е. Темнее, чем заданный цвет) копируется, но что-либо выше (то есть светлее) просто прозрачно.Стереть UIImage легкостью?
Теперь я новичок в этом, так что если есть лучший способ пойти об этом я хотел бы услышать это, но мой первый инстинкт, чтобы создать новый UIImage с той же рамкой , а затем нарисуйте его на основе легкости данной области в оригинале. Что-то вроде ...
-(UIImage*)mapIsolatedFromThreshold:(CGFloat)threshold showAbove:(BOOL)above;
Таким образом, переменная threshold
может быть 0.7
или 0.2
или любой другой, а затем вы можете установить above
в YES
, если вы хотите, чтобы все больше (то есть легче), чем порог, или NO
, если вы хотите, чтобы все было ниже (т.е. темнее).
Дело в том, что я никогда не делал обработку изображения или рисования раньше, поэтому я не знаю, как настроить этот метод. У меня есть смутное чувство, что это будет связано с UIGraphicsBeginImageContext
и такими, но я не смог найти никаких вопросов или руководств, которые используют его на основе легкости другого изображения.
Как я могу сделать такой метод? Или есть какая-то уже существовавшая система для обработки карт высот в iOS, что делает это намного проще, чем я это рассматриваю?