미술을 보고 '그래 나도 저런 비슷한 걸 만들 수 있겠구나'라고 생각한 적이 있어요. 글쎄, 당신은 혼자가 아닙니다! 온라인에서 데미안 허스트의 도트 페인팅을 검색해 보면 비슷한 생각이 떠오를 수도 있다. 오늘은 코드를 사용하여 이 이론을 테스트해 보겠습니다.
우리는 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!