Художественная галерея с картинами на мольбертах в современном интерьере.

Создание произведений искусства на Python, вдохновлённых картиной Хёрста «Миллион долларов в пятнах».

Использование Python для создания произведений искусства.

Делиться

767bd1cdffd19fd4682679da3769fbf7

Вы когда-нибудь бывали в художественном музее и удивлялись, как такое, казалось бы, обычное произведение искусства может стать настолько знаменитым или быть продано за такую высокую цену? Или как произведение искусства, которое, казалось бы, так легко создать с помощью таких простых техник, может быть настолько почитаемым и привлекать множество участников торгов? Именно так обстоит дело с картинами Хирста, изображающими пятна.

Дэмиен Херст — английский художник, известный своим современным искусством, посвященным жизни, смерти и красоте. Его знаменитые картины с пятнами представляют собой заполненные круги разных цветов, расположенные в виде сетки на светлом фоне. Эти картины, несмотря на свою простоту, продавались на аукционах за сумму, достигающую миллиона долларов!

В этой статье мы будем использовать модули colorgram и turtle в Python для создания точечных картин, вдохновляясь цветовой палитрой и техниками Хирста. Это простой и понятный для начинающих урок по Python, но он требует базовых знаний основ Python, а также создания объектов и использования методов, импорта и использования модулей Python. В этом увлекательном уроке по Python мы научимся реализовывать концепцию ООП в программировании, а также узнаем, как достичь поставленных целей, используя модули и всего несколько строк кода.

Давайте пробудим в себе художника, изучая программирование на Python!

Точечные картины

Картины Хирста, выполненные в технике точечной живописи, представляют собой небольшие пятна разных цветов, расположенные в виде сетки. Эти картины уникальны как по количеству точек, так и по используемой цветовой палитре. Мы воспользуемся модулем colorgram в Python, чтобы извлечь цветовую палитру из этих столь почитаемых картин, а затем используем модуль turtle в Python для отрисовки этих пятен в виде сетки. Мы можем указать количество точек на холсте, а также расстояние между ними и используемую цветовую схему.

Для ознакомления, вы можете посмотреть эти картины по этой ссылке.

Извлечение цветов

Первым делом нужно извлечь цветовую палитру из одной из картин Хирста. Мы загрузим картину в ту же директорию, что и файл Python, в котором будем писать нашу программу. Но сначала давайте установим модуль colorgram, введя следующие команды в терминал:

pip install colorgram.py

Далее мы импортируем модуль colorgram в наш код и используем функцию extract, указав в качестве аргументов файл изображения и количество цветов, которые мы хотим извлечь из эталонного изображения. Вот файл изображения, который я скачал как «ref.jpg» и использовал для определения цветовой палитры моей сгенерированной на Python точечной живописи.

import colorgram colors = colorgram.extract(«ref.jpg»,20) print(colors)

При выполнении приведенных выше строк кода будет выведено 20 цветов, присутствующих в эталонном изображении:

fd86a1c5735586f280a44985a31953bc

Обратите внимание, что цвета, извлеченные выше, имеют формат, отличный от формата модуля turtle. Теперь мы преобразуем эти цвета в цвета, совместимые с модулем turtle.

Создание списка цветов

Сначала мы создадим пустой список и будем добавлять извлеченные цвета по одному, предварительно отформатировав их в формат RGB. Мы получим значения r, g и b каждого из извлеченных цветов и сохраним их в созданном списке с соответствующим форматированием. Для этого мы будем использовать цикл for:

rgb_colors = [] for color in colors: r = color.rgb.rg = color.rgb.gb = color.rgb.b new_color = (r, g, b) rgb_colors.append(new_color) print(rgb_colors)

3c981e7354a798b3c34b8f873599c8c0

Как видно из приведенного выше изображения, цвета RGB были правильно отформатированы и теперь могут быть использованы для случайного выбора цветов точек.

Импорт Turtle и настройка основных параметров

Теперь мы импортируем модуль Python turtle для создания нашего изображения. Мы определим основные настройки нашей черепашки. Первая — это colormode(), которая определит, как мы будем использовать цвета в нашем дальнейшем коде: либо от 0 до 1, либо от 0 до 255. Подробнее об этой функции можно узнать по этой ссылке.

import turtle turtle.colormode(255) tim = Turtle() tim.shape(«turtle») tim.color(«coral»)

Поскольку мы используем цвета RGB в формате 0-255, мы добавили 255 в качестве аргумента. Кроме того, мы создали объект черепахи из класса Turtle в модуле Python turtle, назвали его tim, а также настроили его форму и цвет. В дальнейшем мы будем использовать эту черепаху в качестве инструмента для рисования.

Располагаем нашу черепаху

Теперь, когда мы создали объект черепахи, давайте визуализируем его с помощью объекта экрана.

from turtle import Screen screen = Screen() screen.exitonclick()

448388746e8e5e3f062af59bd0b1aed1

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

Этого можно добиться с помощью функции `setheading()`, которая принимает в качестве параметра угол для задания направления движения черепахи. После нескольких проб и ошибок мы выяснили, что это можно сделать, установив угол равным 225. Затем мы переместимся вперед на определенное расстояние, скажем, 300. Вот как выглядит наша черепаха в левом нижнем углу:

5d3fc1a6697882cdf5b2ce1d0da36bb0

Мы снова установим направление движения черепахи на 0, поэтому можем начать рисовать точки.

147633ada415fc0ca83b9724fb0160cb

Рисование точек

Теперь, когда направление движения нашей черепашки задано, мы начнём рисовать точки. Мы будем использовать метод `dot` черепашки, который принимает размер точки и цвет для заливки. Рисование точек будет осуществляться с помощью цикла `for`, учитывая общее количество точек, которое мы хотим создать. Если нам нужна сетка 10 на 10 точек, общее количество точек будет равно 100. После каждой десятой точки черепашка должна подняться на одну линию и продолжить рисование. Для этого мы будем использовать операцию по модулю. Кроме того, мы импортируем и используем модуль `random` для случайного выбора цвета для каждой точки.

В цикле for мы будем использовать методы forward и setheading для создания точек, движущихся сначала вперед, а затем вверх:

import random number_of_dots = 100 for dot_count in range(1, number_of_dots + 1): tim.dot(20, random.choice(rgb_colors)) tim.forward(50) if dot_count % 10 == 0: tim.setheading(90) tim.forward(50) tim.setheading(180) tim.forward(500) tim.setheading(0)

8fbf7abb94226d619b97457d1a81d76e

Скрывая черепаху и линии

После того, как точки созданы, нам нужно скрыть черепашку и линии. Это легко сделать с помощью методов hideturtle() и penup().

tim.penup() tim.hideturtle()

Вот как будет выглядеть конечный результат после выполнения указанных выше строк кода:

943c6d6dcf3e6fe78c52a9d754e40274

Заключение

Как видно выше, мы успешно создали прекрасное произведение искусства, используя точечную технику Хирста. Модуль colorgram в Python позволил нам извлечь красивую цветовую палитру, а модуль turtle помог нам создать произведение искусства, используя эту палитру. Это лишь базовый пример того, как можно создавать такие прекрасные произведения с помощью кода, и что происходит, когда искусство и программирование совпадают.

Источник: towardsdatascience.com

ОСТАВЬТЕ СВОЙ КОММЕНТАРИЙ

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

галерея

Компания Anthropic получила от Amazon 5 миллиардов долларов и в обмен пообещала инвестировать 100 миллиардов долларов в облачные сервисы.
dummy-img
Загрузка: обход банковских систем кибермошенниками и проблемы с удалением углерода.
Загрузка: обход банковских систем кибермошенниками и проблемы с удалением углерода.
dummy-img
dummy-img
Взаимодействие человека и машины погружается под воду.
Взаимодействие человека и машины погружается под воду.
Дифференциально приватное машинное обучение в масштабе с использованием JAX-Privacy
Image Not Found
Компания Anthropic получила от Amazon 5 миллиардов долларов и в обмен пообещала инвестировать 100 миллиардов долларов в облачные сервисы.

Компания Anthropic получила от Amazon 5 миллиардов долларов и в обмен пообещала инвестировать 100 миллиардов долларов в облачные сервисы.

Вкратце Опубликовано: Изображение предоставлено: Thos Robinson/Getty Images для The New York Times (откроется в новом окне) Джули Борт Компания Anthropic получила от Amazon 5 миллиардов долларов и в обмен пообещала инвестировать 100 миллиардов долларов в облачные сервисы.…

Апр 21, 2026
dummy-img

Как почистить виниловые пластинки (2026): пылесос, ультразвук, чистящий раствор, щетка.

Эти щелчки и треск недопустимы. Приведите свою музыку в порядок с помощью этого удобного руководства. Источник: www.wired.com

Апр 21, 2026
Загрузка: обход банковских систем кибермошенниками и проблемы с удалением углерода.

Загрузка: обход банковских систем кибермошенниками и проблемы с удалением углерода.

Это сегодняшний выпуск The Download, нашей ежедневной новостной рассылки, которая предоставляет вам ежедневную порцию событий в мире технологий. Кибермошенники обходят системы безопасности банков с помощью незаконных инструментов, продаваемых в Telegram. В центре по отмыванию денег в Камбодже…

Апр 21, 2026
Загрузка: обход банковских систем кибермошенниками и проблемы с удалением углерода.

Загрузка: обход банковских систем кибермошенниками и проблемы с удалением углерода.

Это сегодняшний выпуск The Download, нашей ежедневной новостной рассылки, которая предоставляет вам ежедневную порцию событий в мире технологий. Кибермошенники обходят системы безопасности банков с помощью незаконных инструментов, продаваемых в Telegram. В центре по отмыванию денег в Камбодже…

Апр 21, 2026

Впишите свой почтовый адрес и мы будем присылать вам на почту самые свежие новости в числе самых первых