вторник, 10 мая 2011 г.

Гламурная аватара

Как-то в сети нашла работу с подобным эффектом, мне понравилось и я решила написать урок.

С помощью этого урока вы научитесь создавать аватары с интересным эффектом резного узора. Также вы сможете сделать подарок вашим друзьям обработав их фотографию подобным образом. Думаю, они оценят ваше творчество.
Урок легкий и рассчитан на пользователей с начальным уровнем знания фотошопа. Самое сложное, с чем вы можете столкнуться – это отделение вашего объекта от фона.

финальное изображение:

Эффект узора. Создание гламурной аватары. *


Как это было сделано:

Эффект узора. Создание гламурной аватары. *


Итак, возьмите фотографию, с которой вы намерены работать. Это может быть ваша фотография, фото вашего друга или любое фото из сети. Я взяла фото Холли Берри. Хорошо если это будет полуобнаженная натура, но если у вас нет такого исходника, найдите в одежде, только пусть одежда будет обтягивающая. Можете попробовать поработать только с лицом.

Шаг 1.

Создайте новый документ и залейте его каким-нибудь цветом. Цвет должен гармонировать с общей цветовой гаммой вашей фотографии. Я залила фон радиальным градиентом с настройками, показанными ниже.

Эффект узора. Создание гламурной аватары. *


Шаг 2.

Отделите ваш объект от фона любым известным вам способом и вставьте его на подготовленный ранее фон.

Шаг 3.

Теперь вам понадобятся узорные кисти. Я свои скачала здесь http://www.brushes.psdbox.com/abstract/flo...design-brushes/. Создайте выше новый слой. Выберите понравившуюся вам кисть и наложите ее на фотографию. Цвет кисти значения не имеет, выберите что-то контрастное чтобы вам хорошо было ее видно. Можете повращать полученный узор так, чтобы он хорошо лег на фото. Для этого воспользуйтесь комбинацией клавиш Ctrl+T. После того, как вам положение узора понравится, нажмите Enter, чтобы снять трансформацию.

Эффект узора. Создание гламурной аватары. *


Шаг 4.

Сделайте слой с вашей фотографией активным и, зажав клавишу Сtrl, щелкните по иконке слоя с узором. Вы получите выделение.

Эффект узора. Создание гламурной аватары. *


Далее нажмите Ctrl+J. В результате вы получите фрагмент фотографии в форме кисти на новом слое.

Эффект узора. Создание гламурной аватары. *


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

Эффект узора. Создание гламурной аватары. *


Шаг 5.

Повторив последовательно шаги 3 и 4 несколько раз с разными кистями, вы получите что-то наподобие того что получила я.

Эффект узора. Создание гламурной аватары. *


Шаг 6.

У меня получилось 7 слоев узоров. Далее я взяла два нижних слоя, соединила их в один и сделала чуть темнее с помощью кривых Ctrl+M. Можете воспользоваться уровнями Ctrl+L. Можете немного изменить цвет этих слоев с помощью цветового тона/насыщенности Ctrl+U или цветового баланса / Ctrl+B

Далее подбираете соответствующий шрифт ( я взяла шрифт Aquarelle), пишите ник и ваша аватара готова.

Вот еще одна работа на эту тему

Эффект узора. Создание гламурной аватары. *

Эффект кадра из старого фильма

В этом простом и несложном уроке мы обработаем фотографию таким образом, чтобы она напоминала кадр из старой киноленты:

Эффект кадра из старого фильма

________________________________


Шаг 01
Для начала скачайте изображение пленки, откройте его в фотошопе и обесцветьте Image>Adjustments>Desaturate:

Эффект кадра из старого фильма

Также откройте свое фото и не беспокойтесь, если оно такое же темное, как и на примере. Перетащите свою фотографию в документ с пленкой и подгоните размеры с ее рамками Ctrl+T:

Эффект кадра из старого фильма

Если края фотографии по высоте или ширине будут выходить за границы кадра, выделите эти части прямоугольным выделением и удалите. А чтобы проще было увидеть эти самые лишние области, временно понизьте непрозрачность слою с фото:

Эффект кадра из старого фильма
________________________________


Шаг 02
Теперь обесцветьте свое фото Ctrl+Shift+U:

Эффект кадра из старого фильма

Далее запустите окно работы с кривыми Image>Adjustments>Curves (Ctrl+M). Выберите внутри окна пипетку черного цвета и кликните ею в том место изображения, которое сделать наиболее темным. Я кликнул по затененной темной области одного из зданий. Затем выберите белую пипетку и кликните по тому месту, которое должно стать светлым, например небо:

Эффект кадра из старого фильма
________________________________


Шаг 03
Скопируйте преобразованный слой Ctrl+J и примените к нему размытие с силой действия в 20рх (зависит от размеров вашей фотографии) Filter>Blur>Gaussian Blur:

Эффект кадра из старого фильма

Добавьте этому слою маску, включить которую можно через кнопку внизу палитры слоев (см. скрин):

Эффект кадра из старого фильма

Выберите и настройте инструмент градиента, как показано, и проведите им по маске слоя от центра вниз (маска должна быть предварительно выбрана):

Эффект кадра из старого фильма

Градиентом мы закрасили часть маски и она ограничила действие слоя с размытием, проявив в центральной части четкость нижележащего слоя:

Эффект кадра из старого фильма
Эффект кадра из старого фильма
________________________________


Шаг 04
Создайте корректирующий слой Solid Color с цветом #2b2b25:

Эффект кадра из старого фильма
Эффект кадра из старого фильма

Для этого слоя измените режим смешивания на Lighten и понизьте непрозрачность до 75%:

Эффект кадра из старого фильма

Создайте еще один корректирующий слой Solid Color, но теперь с цветом #ddd6bf. Измените режим смешивания слоя на Overlay, а непрозрачность понизьте до 25%:

Эффект кадра из старого фильма

Это придаст изображению вид сепии:

Эффект кадра из старого фильма
________________________________


Шаг 05
Сейчас мы добавим изображению виньетку, затемняющую его по сторонам.
Создайте корректирующий слой Gradient Fill и настройте его как показано ниже. Потом измените режим смешивания на Soft Light:

Эффект кадра из старого фильма
Эффект кадра из старого фильма

Теперь добавим изображению немного шума. Создайте новый слой выше всех остальных и залейте его 50%-ым серым цветом, а потом примените фильтр шума в 100% Filter>Noise>Add noise:

Эффект кадра из старого фильма

Частично размойте шум, примерно в 1рх: Filter>Blur>Gaussian Blur:

Эффект кадра из старого фильма

Измените режим смешивания для этого слоя на Overlay и понизьте непрозрачность примерно к 15% (непрозрачность будет зависеть от вашего желания):

Эффект кадра из старого фильма
________________________________


Шаг 06
Результат можно немного наклонить в сторону, придав ему немного жизни. Для этого можете слить все слоиCtrl+Alt+Shift+E и воспользоваться трансформацией Ctrl+T или кропом под углом:

Эффект кадра из старого фильма

В завершение: по желанию, можете добавить вашему изображению пыли и царапин, скачав соответственные кисти или использовав специальные фильтры, а также частично размыть финал, буквально на 1-1,5 пикселя, что вовсе не обязательно. Ваша стопка слоев должна сейчас выглядеть примерно так:

Эффект кадра из старого фильма

________________________________


Вот и результат. Спасибо за внимание:

Эффект кадра из старого фильма


Автор: DesignNocturne

Рисуем Солнце

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

- создайте новый слой

- выбираем инструмент выделение и нажав на Shift, создаем круг чем больше, тем лучше (не убираем выделение)

Рисуем Солнце *

- заливаем выделение черным цветом

- применяем фильтр облака Filter > Render > Difference Clouds

- жмите CTRL+F для повторного применения фильтра, пока вас не устроит результат (прим.переводчика. Мне пришлось повысить контрастность облаков, чтоб получить нужное изображение Image > Adjustments > Brightness/Contrast )

Рисуем Солнце *

- идем в Image > Adjustments > Levels

- передвигаем центральный и правый ползунки влево так, чтобы получилось как на рисунке ниже:

Рисуем Солнце *

Рисуем Солнце *

- применяем фильтр Filter > Sharpen > Unsharp Mask:
Amount: 500%
Radius: 3.0
Threshold: 15

Рисуем Солнце *

- фильтр Filter > Distort > Spherize:
Amount: 100%
еще раз Filter > Distort > Spherize, но на этот раз
Amount: 50%

Рисуем Солнце *

- идем в Image > Adjustments > Color Balance
Shadows: +100 | 0 | -100
Midtones: +100 | 0 | -100
Highlights: +70 | 0 | -15

(как альтернатива, можно использовать Image > Adjustments >Hue & Saturation для того, чтоб раскрасить ваше солнышко).

Рисуем Солнце *

- фильтр Filter > Sharpen > Unsharp Mask
Amount: 300%
Radius: 3
Threshold: 15

снимаем выделение CTRL+D

Рисуем Солнце *

Вот что в конце концов получилось у меня. Я еще добавил звезд, тени и внешнее свечение:

Рисуем Солнце *


Автор: www.tutorialwiz.com 

среда, 27 апреля 2011 г.

Python. Пишем простенький сканер портов

Всем доброе время суток. Сегодня мы будем писать очень простенький сканер портов. Итак приступим.
# -*-coding: cp1251

#Импортируем модуль для работы с сокетами
import socket

#определяем хост, который мы будем сканировать
HOST = 'localhost'

# Создаем список портов, которые мы хотим просканирвать
ports = [21, 22, 23, 25, 38, 43, 80, 109, 110, 115, 118, 119, 143,
194, 220, 443, 540, 585, 591, 1112, 1433, 1443, 3128, 3197,
3306, 4000, 4333, 5100, 5432, 6669, 8000, 8080, 9014, 9200]
#Теперь в цикле перебераем все указаные порты
for port in ports:
    #Создаем новый сокет
    sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    # Устанавливаем таймаут, чтоб скрипт не зависал если попал
    # на открытый порт
    sock.settimeout(1)
    try:
        # Пробуем подключится
        sock.connect((HOST, port))
    except:
        # Если возникло исключение -- порт закрыт
        print ("Port %s closed" % port)
        continue
    try:
        #Если порт открыт - пробуем прочитать с него порцию информации
        result = sock.recv(1024)
        # если что-то удалось прочитать, выводим это
        print ("Received: %s port: %s" %port,result)
    except:
        # Если ничего прочитать не удалось -- просто выводим
        # информацию что порт открыт
        print ("Порт %s открыт." % port)
# закрываем сокет.
sock.close()

понедельник, 11 апреля 2011 г.

Pygame. Загрузка изображений.

На самом деле все очень просто, и я наверно не буду писать целый скрипт для примера загрузки изображений. Возможно опытные программисты меня будут ругать, что я выкладываю такие очевидные вещи, но поверьте мне на слово -- для многих новичков это не так просто и интуитивно понятно :)

Итак, загрузка изображений в pygame неимоверно проста:
our_image = pygame.image.load( filename ).convert()

Единственный вопрос, который может возникнуть -- это на счет метода convert(). Документация гласит, что этот метод меняет формат пикселей изображения, благодаря чему оно будет рисоваться на экране гораздо быстрее. Для файлов, содержащих альфа-канал ( png например) нужно использовать convert_alpha()

Pygame. Использование мышки и клавиатуры.

В сегодняшнем примере мы рассмотрим принципы работы pygame с устройствами ввода, то есть мышкой и клавиатурой.

Чтоб считать состояние клавиатуры мы пробегаемся по событиям и смотрим не появилось ли событие KEYDOWN или KEYUP. Если они появились, то мы смотрим из этого события какие кнопки были нажаты и обновляем положения прямоугольничка на экране.

Чтобы узнать координаты мышки нужно вызвать метод pygame.mouse.get_pos(), который возвращает координаты курсора.

pygame_input.py:
import pygame

# Определяем несколько цветов
black    = (   0,   0,   0)
white    = ( 255, 255, 255)
green    = (   0, 255,   0)
red      = ( 255,   0,   0)

# Функция для очистки экрана
def draw_background(screen):
screen.fill(white)

# Функция для отрисовки нашего персонажа
def draw_item(screen, color, x, y):
pygame.draw.rect(screen, color, [0+x, 0+y, 30, 10], 0)
pygame.draw.circle(screen, black, [15+x, 5+y], 7, 0)

# Инициализируем pygame
pygame.init()

screen = pygame.display.set_mode([640, 480])

# Скорость в пикселях за кадр
x_speed = 0
y_speed = 0

# Текущие координаты
x_coord = 10
y_coord = 10

clock = pygame.time.Clock()

done=False
while done == False:
for event in pygame.event.get():
if event.type == pygame.QUIT:
done = True # Если игрок закрыл окно -- прерываем цикл.

# Обрабатываем клавиатуру
# Если игрок нажал каку-нибудь кнопку -- начинаем движение
if event.type == pygame.KEYDOWN:
# Выясняем какая именно кнопка была нажата
if event.key == pygame.K_LEFT:
x_speed =-3
if event.key == pygame.K_RIGHT:
x_speed = 3
if event.key == pygame.K_UP:
y_speed = -3
if event.key == pygame.K_DOWN:
y_speed = 3

# Если кнопка была отпущена, то и движение надо прекратить
if event.type == pygame.KEYUP:
if event.key == pygame.K_LEFT:
x_speed = 0
if event.key == pygame.K_RIGHT:
x_speed = 0
if event.key == pygame.K_UP:
y_speed = 0
if event.key == pygame.K_DOWN:
y_speed = 0

# Обрабатываем движение мышки
pos = pygame.mouse.get_pos()
mouse_x, mouse_y = pos[0], pos[1]

# Двигаем нашего игрока в соответствии
# нажатым кнопкам.
x_coord += x_speed;
y_coord += y_speed;

draw_background(screen)

# Рисуем двух игроков -- зеленый управляется клавиатурой,
# а красный -- мышкой
draw_item(screen, green, x_coord, y_coord)
draw_item(screen, red, mouse_x, mouse_y)

#Теперь выводим все что мы нарисовали из буффера на экран
pygame.display.flip()
clock.tick(60)
pygame.quit()

Pygame. Анимация звездного неба.

В этом примере я покажу как использовать массивы для анимации и слежения за несколькими объектами, в нашем случае -- звездами. Ну звездами их конечно можно назвать с натяжкой, но для vertical scroll shooter`а самое оно. Это отличный фон для какой-нибудь космической стрелялки.

animation_star.py:
import pygame
import random

# Инициализируем pygame
pygame.init()

black = [0, 0, 0]
white = [255, 255, 255]

# Задаем размеры окна
size = [400, 400]
screen = pygame.display.set_mode(size)

# Устанавливаем заголовок
pygame.display.set_caption("Star Animation")

# Создаем пустой массив
star_list = []

# Добавляем 50 звезд со случайными координатами
for i in range(50):
x = random.randrange(0, 400)
y = random.randrange(0, 400)
speed = random.randint(1,3)
star_list.append([x,y, speed])

clock = pygame.time.Clock()

# Повторяем цикл, пока пользователь не закроет окно
done = False
while done == False:

for event in pygame.event.get(): # Проходим по всем событиям
if event.type == pygame.QUIT: # Если пользователь закрыд окно
done = True # Помечаем что пора заканчивать

# Очищаем окно
screen.fill(black)

# Обрабатываем каждую звезду в списке
for star in star_list:
# Рисуем звезду
pygame.draw.circle(screen, white, star[0:2], 2)

# Смещаем звезду вниз
star[1] += star[2]

# Если звезда упала за низ окна
if star[1] > 400:
# Устанавливаем для нее новые случайные координаты (конечноже выше экрана)
star[0] = random.randrange(0,400)
star[1] = random.randrange(-50, -10)
# Выводим на экран все что нарисовали
pygame.display.flip()
clock.tick(20)

pygame.quit()