Maison > développement back-end > Tutoriel Python > Créer un art semblable à un million de livres de peinture

Créer un art semblable à un million de livres de peinture

WBOY
Libérer: 2024-08-23 06:01:32
original
961 Les gens l'ont consulté

Creating art similar to  million pounds worth of painting

Recréer une peinture de Damien Hirst valant un million de dollars à l'aide de graphiques Python et Turtle

Introduction

Aperçu

J'ai déjà vu de l'art et pensé : "Ouais, je pourrais faire quelque chose de similaire à ça." Eh bien, vous n'êtes pas seul ! Si vous effectuez une recherche en ligne sur les peintures à points de Damien Hirst, une pensée similaire pourrait vous traverser l'esprit. Aujourd'hui, nous allons tester cette théorie à l'aide de code.

Objectif

Nous essayons de créer un art similaire aux œuvres d'art populaires de l'artiste Damien Hirst en utilisant le code Python et la bibliothèque graphique Turtle.

Inspiration

Cet article de blog est inspiré du cours Python d'Angela Yu.

Configuration de l'environnement

Nous aurons besoin de Python installé sur notre système (la dernière version est meilleure), de la bibliothèque graphique Turtle (qui est préinstallée lorsque vous installez Python), de la bibliothèque Colorgram (que vous devez installer à l'aide de pip) et de votre IDE préféré. .

Comprendre l'art

L'art de Hirst consiste en un motif de points de couleur symétriques de même taille séparés par un espace cohérent.
Cela semble assez simple à imiter. Alors allons-y.

Codage de la peinture

Création du canevas :

#We import the Turtle library and give it an alias as t
import turtle as t

#We create an object of the Turtle class and name it bob
bob = t.Turtle()

#We create a screen that will be our canvas which our turtle (bob)  #will draw the painting on
screen = t.Screen()

#To make the screen persistent we add the following line of code that #makes sure that the screen stays till we click on it.
screen.exitonclick()
Copier après la connexion

Extraction des couleurs :
Vous pouvez installer la bibliothèque colorgram à partir de ce lien.

#Import the colorgram library
import colorgram

#Make a list that will store the colors extracted from a sample #Damien Hirst painting.
rgb_colors = []

#Extract the colors from the painting. You can choose how many colors #to extract, here 30 is chosen.
colors = colorgram.extract('image.jpg', 30)

#The output is a list of colorgram object of RGB values. We select #the RGB values from them.
for color in colors:
    r = color.rgb.r
    g = color.rgb.g
    b = color.rgb.b
    new_color = (r, g, b)
    rgb_colors.append(new_color)

print(rgb_colors)

#After we get the output, we can select the color list from the #terminal, store them into a variable like below, and comment the #above code.
color_list = [(245, 243, 238), (202, 164, 110), (240, 245, 241), (149, 75, 50), (222, 201, 136), (53, 93, 123), (170, 154, 41), (138, 31, 20), (134, 163, 184), (197, 92, 73), (47, 121, 86), (73, 43, 35), (145, 178, 149), (14, 98, 70), (232, 176, 165), (160, 142, 158), (54, 45, 50), (101, 75, 77), (183, 205, 171), (36, 60, 74), (19, 86, 89), (82, 148, 129), (147, 17, 19), (27, 68, 102), (12, 70, 64), (107, 127, 153), (176, 192, 208), (168, 99, 102)]
Copier après la connexion

Dessiner les motifs :

#Importing random module to randomly choose colors from color list
import random

# Since we are using RGB we set the colormode to 255 as there are 0 #to 255 values of RGB.
t.colormode(255)

#For better visualization we speed up the drawing process
bob.speed("fastest")

#by default our pen draws a line, we penup to avoid that
bob.penup()

# Going to an appropriate place in the canvas to draw all the dots in #the visible area
bob.setheading(220)
bob.forward(300)

#Setting the heading in right direction to draw the dots
bob.setheading(0)
number_of_dots = 100

#drawing dots of size 20 at a distance of 50 from each other of a #random color from the color list. After every 10 dots we go the next #line
for dots in range(1, number_of_dots + 1):
    bob.dot(20, random.choice(color_list))
    bob.forward(50)

    if dots % 10 == 0:
        bob.setheading(90)
        bob.forward(50)
        bob.setheading(180)
        bob.forward(500)
        bob.setheading(0)

#hiding our drawing pen
bob.hideturtle()
Copier après la connexion

Améliorations

Maintenant, vous avez le choix entre différentes peintures de Hirst et nous pouvons en extraire n'importe quel nombre de couleurs, alors n'hésitez pas à essayer par vous-même et à voir quel type d'œuvre d'art vous pouvez créer !

Conclusion

Dans l'ensemble, c'est un projet amusant et montre à quel point il est facile de créer quelque chose de réel à partir des principes fondamentaux d'un langage de programmation.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:dev.to
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal