Содержание
Делайте фотографии в режиме «Портрет» на камеру iPhone
С помощью функции «Камера» на моделях, поддерживающих режим «Портрет», вы можете применять эффект глубины резкости, который сохраняет резкость объекта — людей, домашних животных, объектов и т. д. — и создает красивое размытие передний план и фон. К фотографиям в портретном режиме можно применять и настраивать различные световые эффекты, а на iPhone X и более поздних моделях вы даже можете делать селфи в портретном режиме.
Сделать снимок в портретном режиме
На iPhone 8 Plus, iPhone X и более поздних моделях к фотографиям в портретном режиме можно применять световые эффекты студийного качества.
Откройте камеру, затем выберите портретный режим.
Следуйте подсказкам на экране, чтобы выделить объект в желтой портретной рамке.
Перетащите, чтобы выбрать эффект освещения:
Естественный свет: Лицо находится в резком фокусе на размытом фоне.
Студийный свет: Лицо ярко освещено, и в целом фотография выглядит чистой.
Контурный свет: Лицо имеет драматические тени с бликами и затемнениями.
Сценический свет: Лицо освещается прожектором на глубоком черном фоне.
Stage Light Mono: Эффект похож на Stage Light, но фотография будет классической черно-белой.
High-Key Light Mono: Создает объект в градациях серого на белом фоне (доступно на iPhone X S , iPhone X R и новее).
Нажмите кнопку спуска затвора, чтобы сделать снимок.
После того, как вы сделаете снимок в портретном режиме, вы можете удалить эффект портретного режима, если он вам не нравится. В приложении «Фото» откройте фотографию, коснитесь «Изменить», затем коснитесь «Портрет», чтобы включить или выключить эффект.
Примечание. На iPhone 12 Pro, iPhone 12 Pro Max, iPhone 13 Pro, iPhone 13 Pro Max, iPhone 14 Pro и iPhone 14 Pro Max ночной режим включается, когда вы делаете портретный снимок при слабом освещении. ситуации с широким (1x) объективом. Дополнительные сведения о ночном режиме см. в разделе Съемка фотографий в ночном режиме.
Примечание. На iPhone X R сценический свет, сценический свет, монохром и светлый ключ, монофонический свет доступны только при использовании передней камеры.
Регулировка глубины в портретном режиме
На iPhone X S , iPhone X R и более поздних версиях используйте ползунок «Глубина», чтобы настроить уровень размытия фона на фотографиях в портретном режиме.
Откройте камеру, выберите режим «Портрет», затем скомпонуйте кадр.
Нажмите в правом верхнем углу экрана.
Ползунок управления глубиной появляется под рамкой.
Перетащите ползунок вправо или влево, чтобы настроить эффект.
Нажмите кнопку спуска затвора, чтобы сделать снимок.
После того, как вы сделаете снимок в режиме «Портрет», вы можете использовать ползунок «Глубина» в программе «Фото» для дальнейшей настройки эффекта размытия фона. См. Редактирование фотографий в портретном режиме.
Настройка эффектов портретного освещения в портретном режиме
На iPhone X S , iPhone X R и более поздних моделей можно виртуально регулировать положение и интенсивность каждого эффекта портретного освещения, чтобы сделать глаза четче или сделать черты лица ярче и сгладить.
Откройте камеру, выберите режим «Портрет», затем перетащите, чтобы выбрать эффект освещения.
Коснитесь в верхней части экрана.
Ползунок «Портретное освещение» появляется под рамкой.
Перетащите ползунок вправо или влево, чтобы настроить эффект.
Нажмите кнопку спуска затвора, чтобы сделать снимок.
После того, как вы сделаете снимок в режиме «Портрет», вы можете использовать ползунок «Портретное освещение» в программе «Фото» для дальнейшей настройки эффекта освещения. См. Редактирование фотографий в портретном режиме.
См. также Делайте фотографии в ночном режиме с помощью камеры iPhone. Применяйте стили фотографии с помощью камеры iPhone.
Создайте собственного настольного питомца с помощью Python | от TheNobody | Аналитика Vidhya
: сделайте свой собственный настольный компьютер с помощью Python
Все любят животных, верно? Но должен же быть кто-то, у кого аллергия на кошек или собак, как у меня. Так что однажды я просто подумал, а почему бы просто не сделать цифровой? Хотя они не настоящие, но эй, я могу завести свою кошку! Поэтому в этой статье я покажу вам, как я пишу своего собственного настольного кота, используя язык программирования Python!
Прежде всего, нам нужно импортировать наш модуль и назначить несколько переменных, которые я объясню позже в статье, и я собираюсь использовать «Tkinter» в качестве нашего графического интерфейса.
import random
import tkinter as tk
import pyautoguix = 1400
cycle = 0
check = 1
idle_num = [1,2,3,4]
sleep_num = [10,11,12,13,15]
walk_left = [6,7]
walk_right = [8,9]
event_number = random. randrange(1,3,1)
impath = 'C:\\your\\path\\to\\file'
и Причина, по которой я импортирую random, заключается в том, что наш питомец движется случайным образом.
После этого нам нужно создать окно tkinter, в которое мы собираемся поместить нашего питомца.
window = tk.Tk()
Далее, мы должны знать, какое действие мы хотим, чтобы наш питомец имел, в моем случае, я хочу кошку, и я хочу, чтобы она могла бездельничать, спать и ходить по моему рабочему столу, поэтому я проделали тяжелую работу по созданию .gif для нашего кота.
холостой ход при переходе от бездействия к сну спящий при переходе от спящего режима обратно к простою ходьба влево вправо
пока у нас есть этот .gif, мы должны вызвать его из локального файла в нашу программу python:
#вызвать действие приятеля .gif в массив
idle = [tk.PhotoImage(file=impath+'idle.gif',format = 'gif -index %i' %(i)) for i in range(5)] #idle gif , 5 кадров
idle_to_sleep = [tk. PhotoImage(file=impath+'idle_to_sleep.gif',format = 'gif -index %i' %(i)) for i in range(8)] #idle to sleep gif, 8 кадров
sleep = [tk.PhotoImage(file=impath+'sleep.gif',format = 'gif -index %i' %(i)) for i in range(3)] #sleep gif, 3 кадра
sleep_to_idle = [tk. PhotoImage(file=impath+'sleep_to_idle.gif',format = 'gif -index %i' %(i)) для i в диапазоне (8)] #sleep to idle gif, 8 кадров
walk_positive = [tk.PhotoImage(file=impath+'walking_positive.gif',format = 'gif -index %i' %(i)) for i in range(8)] #walk to left gif, 8 кадров
walk_negative = [tk.PhotoImage(file=impath+'walking_negative.gif',format = 'gif -index %i' %(i)) for i in range(8)] # прогулка вправо gif, 8 кадров
чтобы сделать фон нашего питомца из черного в прозрачный, нам нужно несколько строк кода:
window.config(highlightbackground='black')
window.overrideredirect(True)
window. wm_attributes('-transparentcolor','black')
поскольку я хочу, чтобы она была подвижной и показывала анимацию, я назначаю ей метку:
label = tk.Label(window ,bd=0,bg='black')
label.pack()
window.mainloop()
И это то, что нам нужно, чтобы наша программа работала.
Так как мы вызываем наш .gif в виде массива, нам нужно сделать функцию для зацикливания каждого кадра:
#заставить gif работать
def gif_work(цикл,кадры,номер_события,первый_номер,последний_номер):
если цикл < len(кадры) -1:
цикл+=1
иначе:
цикл = 0
номер_события = random.randrange(first_num,last_num+1, 1)
return cycle,event_number
как показывает код, каждый раз, когда мы вызываем эту функцию, переменная ‘цикл’ будет увеличиваться на 1, но когда она достаточно велика (длина массива кадров -1), она вернуться к 0 и изменить event_number в случайном диапазоне, это потому, что я хочу, чтобы моя кошка меняла это действие каждый раз, когда . gif зацикливался один раз. Это может помочь сделать питомца более естественным, так как каждое движение является случайным, но логичным, например, когда он спит, цикл .gif один раз, он сразу думает, какое действие делать дальше, это может быть переход от сна к продолжению сна или бодрствованию и бодрствованию. праздный.
Нам нужно, чтобы наш питомец выполнил действие с присвоением каждому действию номера:
def update(cycle,check,event_number,x):
#idle
if check ==0:
frame = idle[cycle ]
цикл ,номер_события = gif_work(цикл,ожидание,номер_события,1,9)#idle to sleep
elif check ==1:
frame = idle_to_sleep[цикл]
цикл ,event_number = gif_work(cycle,idle_to_sleep, event_number,10,10) #sleep
elif check == 2:
frame = sleep[цикл]
цикл, номер_события = gif_work(цикл, сон, номер_события, 10,15) #sleep to idle
elif check ==3:
frame = sleep_to_idle[цикл]
cycle, event_number = gif_work(cycle,sleep_to_idle,event_number, 1,1) #идти налево
elif check == 4:
frame = walk_positive[cycle]
cycle , event_number = gif_work(cycle,walk_positive,event_number,1,9)
x -= 3 #идти навстречу право
проверка elif == 5:
кадр = walk_negative[цикл]
цикл, event_number = gif_work(цикл,walk_negative,event_number,1,9)
x -= -3
window. geometry('100x100+'+str(x)+'+1050')
label.configure(image=frame)
window.after(1,event,cycle,check,event_number, x)
код
x = 1400
window.geometry('100x100+'+str(x)+'+1050')
— это местоположение нашего окна tkinter, также известное как позиция нашего питомца, ‘100×100’ — это размер нашего питомца в пикселях, «x» — это позиция x на нашем экране, а «1050» — это пол, на который наступает наш питомец (он меняется в зависимости от разрешения вашего экрана)
Чтобы изменить событие, нам нужна функция, определяющая время и вероятность выполнения действия:
idle_num = [1,2,3,4]
sleep_num = [10,11,12,13,15]
walk_left = [6,7]
walk_right = [8,9] #transfer random no. к событию
def event(cycle,check,event_number,x):
if event_number in idle_num:
check = 0
print('idle')
window.after(400,update,cycle,check,event_number,x) №№. 1,2,3,4 = простоя elif event_number == 5:
check = 1
print('из простоя в сон')
window. after(100,update,cycle,check,event_number,x) #no. 5 = бездействует и засыпает elif event_number in walk_left:
check = 4
print('движение влево')
window.after(100,update,cycle,check,event_number,x) #no. 6,7 = идти влево elif event_number in walk_right:
check = 5
print('идти вправо')
window.after(100,update,cycle,check,event_number,x) #no 8,9 = идти направо elif event_number in sleep_num:
check = 2
print('sleep')
window.after(1000,update,cycle,check,event_number,x) #no. 10,11,12,13,15 = sleep elif event_number == 14:
check = 3
print('из спящего режима в режим ожидания')
window.after(100,update,cycle,check,event_number,x) #нет. 15 = sleep to idle
если кто-то из вас запутался в
window.after(1000,update,cycle,check,event_number,x)
это означает, что программа вызовет функцию обновления со следующим назначением после 1000 мс, что составляет 1 с, и мы могли бы контролировать скорость анимации, изменяя ее.
Если вы обратили внимание на приведенный выше код, вы должны заметить, что после перехода нашего кота из режима ожидания в режим сна следующим действием должен быть сон, так же, как после перехода из режима ожидания в режим ожидания он должен быть в режиме ожидания,
idle_num = [1,2,3,4]
#sleep_to_idle
elif check ==3:
frame = sleep_to_idle[cycle]
cycle ,event_number = gif_work(cycle,sleep_to_idle,event_number,1,1)#должен быть бездействующим
в переменной, которую мы присвоили в начале:
check = 1
idle_num =[1,2,3,4]#5 находится в режиме ожидания для перехода в спящий режим
sleep_num = [10,11,12,13,15] #14 находится в режиме ожидания в режиме ожидания, извините за пропуск
walk_left = [6,7]
walk_right = [8,9]
мы могли видеть, что у нас есть 15 чисел, в начале программы наш питомец должен бездействовать, потому что мы присвоили переменной ‘check’ значение 1, после цикла .gif один раз, ‘ event_number» будет случайным образом изменяться от 1 до 9, поэтому вероятность того, что он будет продолжать бездействовать или двигаться влево и вправо, составляет 4/9, а вероятность 1/9 перейти из режима ожидания в спящий режим. И как только он переключился на сон, он должен выполнить действие сна, чтобы предотвратить мгновенное пробуждение, что не кажется естественным.
И, как и у обычной кошки, у него был очень высокий шанс продолжать спать, спать и спать.
import pyautogui
import random
import tkinter as tkx = 1400
cycle = 0
check = 1
idle_num = [1,2,3,4]
sleep_num = [10,11,12,13,15]
walk_left = [6,7]
walk_right = [8,9]
event_number = random.randrange(1,3,1)
impath = 'C:\\Users\\fx770\\Desktop\\Project\\Buddy\\ image\\'#transfer случайный номер. к событию
def event (цикл, проверка, номер_события, x):
если event_number в idle_num:
check = 0
print('idle')
window.after(400,update,cycle,check,event_number,x) #no. 1,2,3,4 = idleelif event_number == 5:
check = 1
print('из простоя в сон')
window.after(100,update,cycle,check,event_number,x) #no. 5 = бездействует до sleepelif event_number в walk_left:
check = 4
print('идет влево')
window. after(100,update,cycle,check,event_number,x)#no. 6,7 = идти в направлении leftelif event_number in walk_right:
check = 5
print('идти вправо')
window.after(100,update,cycle,check,event_number,x)#no 8,9 = идти вправо, если event_number in sleep_num:
check = 2
print( 'спящий')
window.after(1000,update,cycle,check,event_number,x)#no. 10,11,12,13,15 = sleepelif event_number == 14:
check = 3
print('из спящего режима в режим ожидания')
window.after(100,update,cycle,check,event_number,x)#no. 15 = переход из режима сна в режим ожидания#запуск работы gif
def gif_work(цикл,кадры,номер_события,первый_номер,последний_номер):
, если цикл < len(кадры) -1:
цикл+=1
иначе:
цикл = 0 x):
#idle
if check ==0:
frame = idle[cycle]
cycle ,event_number = gif_work(cycle,idle,event_number,1,9)#idle to sleep
elif check ==1:
frame = idle_to_sleep[цикл]
цикл, event_number = gif_work(cycle,idle_to_sleep,event_number,10,10)#sleep
elif check == 2:
кадр = сон [цикл]
цикл, номер_события = gif_work (цикл, сон, номер_события, 10,15) # от сна до бездействия ,sleep_to_idle,event_number,1,1)#идти влево
elif check == 4:
кадр = walk_positive[цикл]
цикл , event_number = gif_work(цикл,walk_positive,event_number,1,9)
x -= 3# идти вправо
elif check == 5:
кадр = walk_negative[цикл]
цикл, event_number = gif_work(цикл,walk_negative,event_number,1,9)
x -= -3
window. geometry('100x100+'+str(x)+'+1050')
label.configure(image=frame)
window.after(1,event,cycle,check,event_number, x)window = tk.Tk()#call buddy's action gif
idle = [tk.PhotoImage(file=imppath+'idle.gif',format = 'gif -index %i' %(i)) for i in range( 5)]#idle gif
idle_to_sleep = [tk.PhotoImage(file=impath+'idle_to_sleep.gif',format = 'gif -index %i' %(i)) for i in range(8)]#idle to sleep gif
sleep = [tk.PhotoImage(file=impath+'sleep.gif',format = 'gif -index %i' %(i)) for i in range(3)]#sleep gif
sleep_to_idle = [tk.PhotoImage(file=impath+'sleep_to_idle.gif',format = 'gif -index %i' %(i)) for i in range(8)]#sleep to idle gif
walk_positive = [tk. PhotoImage(file=impath+'walking_positive.gif',format = 'gif -index %i' %(i)) for i in range(8)]#walk to left gif
walk_negative = [tk.PhotoImage(file=impath+' walk_negative.gif',format = 'gif -index %i' %(i)) for i in range(8)]#walk to right gif#window configuration
window.config(highlightbackground='black')
label = tk .