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

Создание произведений искусства на 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

✅ Найденные теги: Python, Искусство, Картина, Миллион Долларов, новости, Создание, Хёрст

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

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

галерея

Человек в кожаной куртке демонстрирует процессор на футуристическом фоне.
ideipro logotyp
Отражение деревьев в воде озера, спокойная гладь.
ideipro logotyp
Цифровой компонент на фоне блокчейн-технологии и сетевых данных.
Пирамида факторов риска, симптомов и локаций для тропических заболеваний.
Улучшение моделей работы мозга с помощью ZAPBench
ideipro logotyp
Программирование в стиле Vibe с чрезмерно усердным ИИ: уроки, извлеченные из использования Google AI Studio как инструмента командной работы.
Image Not Found
Человек в кожаной куртке демонстрирует процессор на футуристическом фоне.

Дженсен Хуанг утверждает, что Nvidia сокращает свое участие в проектах OpenAI и Anthropic, но его объяснение порождает больше вопросов, чем дает ответов.

Автор изображения: Патрик Т. Фэллон / Contributor / Getty Images В среду на конференции Morgan Stanley по технологиям, медиа и телекоммуникациям в центре Сан-Франциско генеральный директор Nvidia Дженсен Хуанг заявил, что недавние инвестиции его компании в OpenAI…

Мар 5, 2026
ideipro logotyp

Лучшие терапевтические пистолеты Theragun и инструменты Therabody для более эффективного восстановления (2026)

От массажных пистолетов до компрессионных сапог и светодиодных масок для лица — это лучшие устройства в линейке оздоровительных продуктов Therabody. Источник: www.wired.com ✅ Найденные теги: Therabody, Theragun, Восстановление, Инструменты, Лучшие, новости, Терапевтические ПистолетыПохожие записиДженсен Хуанг утверждает, что…

Мар 5, 2026
Отражение деревьев в воде озера, спокойная гладь.

Загрузка: как ИИ меняет игру в го и загадка кибербезопасности

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

Мар 5, 2026
ideipro logotyp

Материалы учредительного заседания Международного общества трактографии — IST 2025, Бордо.

arXiv:2602.12410v2 Тип объявления: replace-cross Аннотация: Данная подборка включает в себя тезисы докладов, представленных на постерных, презентационных и устных сессиях на первой конференции Международного общества трактографии (IST Conference 2025), состоявшейся в Бордо, Франция, с 13 по 16 октября…

Мар 5, 2026

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