>  기사  >  백엔드 개발  >  백만 파운드 상당의 그림과 유사한 예술 작품 만들기

백만 파운드 상당의 그림과 유사한 예술 작품 만들기

WBOY
WBOY원래의
2024-08-23 06:01:32923검색

Creating art similar to  million pounds worth of painting

Python과 Turtle 그래픽을 사용하여 백만 달러짜리 Damien Hirst 그림 재현

소개

개요

미술을 보고 '그래 나도 저런 비슷한 걸 만들 수 있겠구나'라고 생각한 적이 있어요. 글쎄, 당신은 혼자가 아닙니다! 온라인에서 데미안 허스트의 도트 페인팅을 검색해 보면 비슷한 생각이 떠오를 수도 있다. 오늘은 코드를 사용하여 이 이론을 테스트해 보겠습니다.

목적

우리는 Python 코드와 Turtle 그래픽 라이브러리를 사용하여 아티스트 Damien Hirst의 인기 작품과 유사한 예술 작품을 만들려고 노력하고 있습니다.

영감

이 블로그 게시물은 Angela Yu의 Python 강좌에서 영감을 받았습니다.

환경 설정

시스템에 Python(최신 버전이 더 좋음), Turtle 그래픽 라이브러리(Python 설치 시 사전 설치됨), Colorgram 라이브러리(pip를 사용하여 설치해야 함) 및 즐겨 사용하는 IDE가 설치되어 있어야 합니다. .

예술의 이해

허스트의 예술은 일관된 공간으로 구분된 동일한 크기의 대칭적인 색상 점 패턴으로 구성됩니다.
흉내낼 만큼 간단해 보입니다. 그럼 시작해 보겠습니다.

그림 코딩하기

캔버스 만들기:

#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()

색상 추출:
이 링크에서 컬러그램 라이브러리를 설치할 수 있습니다.

#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)]

패턴 그리기:

#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()

향상된 기능

이제 다양한 Hirst의 그림 중에서 선택할 수 있으며 그 중에서 원하는 색상을 추출할 수 있으므로 자유롭게 직접 시험해보고 어떤 종류의 예술 작품이 나올 수 있는지 확인해 보세요!

결론

전반적으로 재미있는 프로젝트이며 프로그래밍 언어의 기본부터 실제적인 것을 만드는 것이 얼마나 쉬운지 보여줍니다.

위 내용은 백만 파운드 상당의 그림과 유사한 예술 작품 만들기의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
이전 기사:ML의 라벨 인코딩다음 기사:ML의 라벨 인코딩