Працюємо з зображеннями в Processing

У попередніх прикладах ми малювали на екрані фігури за допомогою координат Processing може працювати і з зображеннями У цьому прикладі ми розглянемо завантаження зображень, відображення їх на екрані, зміна кольорів пікселів і копіювання / вставку частин зображень

Приступимо

Відкрийте одну з ваших улюблених фотографій, змініть розмір і обріжте її в Photoshop так, щоб вона стала розміром 640 x 480 пікселів Якщо у вас немає Photoshop, ви можете завантажити GIMP, відкритий редактор зображень GIMP доступний для Linux, Windows і Mac OS X Завантажити її можна за адресою: http://wwwgimporg/

Як це робиться

Створіть новий скетч і збережіть його як working_with_imagespde Як тільки ви зробите це, перетягніть зображення, яке ви тільки що обрізали в текстовий рактор Processing Це найпростіший спосіб додати файл до скетчу Після цього можна починати складати код Перше, що ми зробимо – оголосимо кілька змінних

PImage img

// some settings to play with boolean pixelMode = false int copyWidth = 50

int copyHeight = 3

У функції setup () ми встановимо розмір вікна і завантажимо зображення, яке ми тільки що зберегли в папці data в обєкт PImage:

void setup()

{

size( 640, 480 )

smooth()

img = loadImage(&quotosaka-fluojpg&quot)

}

У функції draw () ми отримаємо кілька випадкових чисел і застосуємо їх потім для Зени пікселів або частин зображення У блоці if-else реалізований алгоритм заміни пікселів Нарешті, ми виведемо на екран нове зображення за допомогою функції image ()

void draw()

{

int x1 = floor( random( width ) ) int y1 = floor( random( height ) )

int x2 = floor( random( width ) ) int y2 = floor( random( height ) )

if ( pixelMode == true ) { color c1 = imgget( x1, y1 ) color c2 = imgget( x2, y2 ) imgset( x1, y1, c2 )

imgset( x2, y2, c1 )

} else {

PImage crop1 = imgget( x1, y1, copyWidth, copyHeight ) PImage crop2 = imgget( x2, y2, copyWidth, copyHeight ) imgset( x1, y1, crop2 )

imgset( x2, y2, crop1 )

}

image( img, 0, 0 )

}

Зі значеннями змінних, встановлених за замовчуванням, вас повинно вийти зображення, схоже на те, що зображено на скріншоті

Як це працює

Коли ви перетягуєте зображення в текстовий редактор, Processing створює копію цього файлу і зберігає його в папці data вашого скетчу Переглянути цю папку можна в меню Sketch | Show Sketch Folder

Перед тим, як працювати з зображеннями в Processing, потрібно оголосити обєкт класу PImage Функція loadImage () у функції setup () завантажує зображення з папки data в цей обєкт PImage

Для копіювання пікселів і зміни їх кольору ми використовували методи get () і set () з класу PImage Вони можуть використовуватися з двома або чотирма паретрамі Метод get () з двома параметрами повертає колір заданої координати Якщо ви використовуєте його з чотирма координатами, він повертає обєкт класу PImage Перші два параметри задають координати x / y верхнього лівого кута, третій і четвертий встановлюють ширину і висоту копійованого фрагмента в пікселях Метод set () аналогічний get, але він змінює колір заданого пікселя або прямокутної області пікселів

У цьому прикладі я застосував логічну змінну pixelMode для перемикання з одного пікселя на групу пікселів Змінні copyWidth і copyHeight устанавлают розмір копируемой / вставляемой області пікселів

Джерело: Ян Вантомм, Processing 2: креативне програмування, переклад з англійської Олександри Мішутіної, Published by Packt Publishing Ltd, 2012, BIRMINGHAM – MUMBAI

Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*