2017-01-05 6 views
2

Я делаю приложение, в котором пользователю будет разрешено выбрать фоторамку во-первых, и после этого ему может потребоваться выбрать 2 фотографии из галереи для этой фоторамки (фото frame - это изображение, которое объединяет два прозрачных отверстия, в которых мы должны установить выбранные фотографии), и он может обрезать их по их словам. И после того, как он/она закончит обрезку, откроется новое представление с выбранной фотографией и эти два обрезанных изображения будут установлены в этих двух прозрачных целых. Я закончил, пока не будет сделано обрезка.iPhone: Установить изображениеПросмотреть в прозрачной части изображения

Вопрос

Как установить эти два изображения в прозрачной части так, что он будет отображаться правильно во всех устройствах и прозрачная часть постоянно меняется в зависимости от фоторамки пользователь выберет. These kind of photo frames i'm providingenter image description here

+0

Есть ли библиотека или что-нибудь, что может помочь мне в достижении моей задачи? Пожалуйста, помогите мне, я застрял в этой проблеме с последних 15 дней. :( – Abhijeet

+0

выше рамки PNG-файл справа и середина часть прозрачна? – CodeChanger

+0

Да. И я хочу установить выбранные пользователем изображения из галереи в эти прозрачные части. @CodeChanger – Abhijeet

ответ

2

Добавить новое изображение на просмотр. Добавьте жест для перемещения и изменения размера (увеличения) нового изображения, установите идеальное положение для нового изображения (то есть в центре кадра), Затем отправьте изображение на обратную сторону основного изображения. После этого визуализируйте оба представления и создайте новое изображение с помощью UIGraphicsContext.

У меня есть код для визуализации.

UIGraphicsBeginImageContextWithOptions(self.viewCombineImages.bounds.size, false, 0.0) 
    self.viewCombineImages.layer.render(in: UIGraphicsGetCurrentContext()!) 
    let image = UIGraphicsGetImageFromCurrentImageContext()! 
    UIGraphicsEndImageContext() 
+0

Но поток моего приложения таков, что сразу после того, как я сделал с обрезкой двух изображений, они должны автоматически устанавливаться внутри кадра. У пользователя не должно быть возможности взаимодействовать дальше, поэтому я не могу добавить жесты к изображениям вправо. @ Сагар Чаухан – Abhijeet

+0

Хорошо, ты прав насчет своего пути. Но как вы узнаете, где прозрачная позиция представления в вашем изображенииView, каждый раз, когда вы не можете установить ее вручную, потому что изображения различаются каждый раз. @Abhijeet. –

+0

Если вы не хотите взаимодействовать с изображением после обрезки, тогда разрешите перемещать только изображение. Таким образом, пользователь может установить именно то, что вы ищете. –

0

Если вышеуказанный фрейм .png-файл, можно сделать прозрачным эти части. Я думал, вам нужно три UIImageViews.

верх - декоративная рама изображение под лицо1's изображение/изображение человека2.

Если пользователь выбирает два изображения, примените каждое изображение на изображении. И настройте эти размеры и координаты. Вы можете использовать

[person1ImageView setFrame:CGRectMake(x,y,width,height)]; 

Кроме того, вы можете вращать те, с помощью

person1ImageView.transform = CGAffineTransformMakeRotation(radians); 
+0

Но как я могу получить положение x, y и ширину и высоту прозрачной части файла Png выше? @Lisa – Abhijeet

+0

Может ли кто-нибудь дать мне правильный ответ, связанный с моей проблемой? – Abhijeet

0

В соответствии с вашим требованием здесь вы можете установить 3 ImageView.

  1. Изображение с изображением лица1.
  2. Изображение с изображением Person2.
  3. Изображение с изображением рамки.

так стопка подвид, как UIViewController->UIView->Person Image View1 , Person ImageView 2 -> Frame Image View.

Нравится этот снимок экрана.

enter image description here

enter image description here

enter image description here

И не нужно прозрачное положение изображения вобще как размер изображения половину кадра и установить его под видом изображения кадра, и вы можете достичь этого, как мой Скриншот.

+0

Эта идея может работать только для этого кадра. Что, если пользователь выбирает другие фреймы? Тогда положение прозрачной области также изменится правильно? то это не будет работать. @CodeChanger – Abhijeet

+0

На мой взгляд, все размеры рамки будут такими же, как и если вы можете достичь этого другого мудрого, его внешний вид связан с разным разным размером. – CodeChanger

+0

В приведенном выше примере 2 кадра оба размера одинаковы, и это правильный путь. – CodeChanger

Смежные вопросы