Я пытаюсь создать функцию в своем приложении, которая позволяет пользователю извлекать указанную область существующего изображения и сохранять ее как png с включенной альфа.Создание alpha для UIImage
Я поставил UIView
наверх в UIImageView
- на imageView
отображает изображение, в то время как вы рисуете вашу маску на прозрачном view
. Для рисования я использую UIBezierPath
. Пользователь может рисовать вокруг объекта, а внутри будет временно заполняться черным.
Пользователь выбирает изображение из фото ролла, и он представлен в основном UIImageView
, как показан на рисунке слева, и когда пользователь обращается форма (которая автоматически закрывает), на вышележащих UIView
, это выглядит как правое изображение:
Это работает, как ожидалось, но когда пользователь нажимает кнопку «Crop», то магия должна начать. До сих пор я только был в состоянии создать «маску» и сохранить его как изображение на рулоне, как показано здесь (никогда виду соотношение сторон, я починю, что позже):
Это обычный образ, созданный по пути/форме, с цветами (черный на белом, а не черный на прозрачном). Мне нужен какой-то способ использовать это «изображение» в качестве альфа-канала для исходного изображения.
Я знаю, что это две совершенно разные вещи, что альфа-канал не совпадает с изображением, но у меня есть форма, поэтому я хотел бы знать, есть ли какой-либо возможный способ «обрезать» или «alpha out» с моими данными. То, что я хочу, чтобы в конечном итоге, является PNG лица этой кошки, с окружающей средой 100% прозрачным (или даже не там), так что я могу изменить фон, как это:
важно отметить, что я не говорить о показе в UIImageView
с нанесенной маской UIImage
, я говорю о создании нового образа, на основе существующего изображения, в сочетании с другим изображения, что я хочу каким-то образом преобразуются в альфа-канал первого изображения, тем самым сохраняя одно изображение, как показано выше, с прозрачностью.
Я не слишком хорошо разбираюсь в обработке изображений, поэтому мне было интересно, если кто-нибудь знает, как создать новое изображение на основе двух изображений, один из которых действует как альфа для другого, когда не изображений обязательно для начала нужно использовать альфа-канал.
Спасибо, я проверю это через день или два, но похоже, что он принимает альфа второго изображения и применяет его к первому, и я не думаю, что форма, которую я создаю, альфа-канал на нем, как сейчас, но я попытаюсь найти способ сделать это. Я бы предположил, что оба изображения должны быть точно такого же размера, как и в этот момент. Я попробую кое-что и надеюсь, что скоро вернусь с хорошими новостями :) – Sti
Это сработало наконец. Я узнал, что я уже пробовал это, но, как оказалось, у одного из изображений, которые я отправил, был фиктивный альфа-канал, который его испортил. Благодаря конвертации обоих в JPEG перед отправкой на этот метод, он отлично работал, спасибо. (Кажется, что он не работает на iOS7, хотя) – Sti