python 그림 9 궁 격 분할 예제 구현
위 챗 친구 권 이나 웨 이 보,QQ 동태 에서'강박 증 환자'들 이 9 장 을 보 내 는 것 을 좋아 하 는 것 을 잘 알 고 있 습 니 다.어떤 그림 들 은 한 장의 그림 으로 나 뉘 어 진 구 궁 도 입 니 다.이런 조작 에 대해 어떻게 하 는 지 아 세 요?
본 고 는 Python 으로 만 든 구 궁 격 이미지 생 성기 입 니 다.포 장 된 exe 파일 입 니 다.사용 자 는 Python 을 설치 하 는 개발 환경 을 배치 하지 않 아 도 현지에서 이 프로그램 을 실행 하여 구 궁 격 그림 을 신속하게 생 성 할 수 있 습 니 다.
실현 원리
실현 원 리 는 매우 간단 하 다.그것 은 바로 PIL 라 이브 러 리 를 이용 하여 원 도 를 계속 작은 그림 으로 자 른 다음 에 새로운 작은 그림 으로 저장 하 는 것 이다.
각 칸 의 너비 와 높이 가 각각 w,h 라 고 가정 하면 첫 번 째 row 줄(0 부터 계산),두 번 째 col 열(0 부터 계산)의 격자 왼쪽 상단 좌표 와 오른쪽 아래 좌 표 는 각각(col*w,row*h),(col*w+w,r*h+h)이다.
소스 코드
다음은 프로그램의 모든 코드 입 니 다.이것 은 Python GUI 프로그램 입 니 다.코드 가 많 지 않 고 이해 하기 쉽 습 니 다.
# -*- coding: UTF-8 -*-
# ,
import tkinter as tk
from PIL import Image
import sys
# input image
def fill_image(image):
width, height = image.size
#
new_image_length = width if width > height else height
# [ ]
new_image = Image.new(image.mode, (new_image_length, new_image_length), color='white') # !
# ,
if width > height:# , #(x,y) , 。
new_image.paste(image, (0, int((new_image_length - height) / 2)))
else:
new_image.paste(image, (int((new_image_length - width) / 2),0))
return new_image
#
def cut_image(image):
width, height = image.size
item_width = int(width / 3) # 3 。
box_list = []
# (left, upper, right, lower)
for i in range(0,3):
for j in range(0,3):
#print((i*item_width,j*item_width,(i+1)*item_width,(j+1)*item_width))
box = (j*item_width,i*item_width,(j+1)*item_width,(i+1)*item_width)
box_list.append(box)
image_list = [image.crop(box) for box in box_list]
return image_list
#
def save_images(image_list):
index = 1
for image in image_list:
image.save(str(index) + '.png', 'PNG')
index += 1
# ,
def cTofClicked():
file_path=str(entryCd.get()) #
image = Image.open(file_path)
#image.show()
image = fill_image(image)
image_list = cut_image(image)
save_images(image_list)
labelcTof.config(text=" , !")
#
top=tk.Tk()
top.title(' ')
labelcTof=tk.Label(top,text=" :",height=4,\
width=40,fg="blue")
labelcTof.pack()
entryCd=tk.Entry(top,text='0') # ,
entryCd.pack()
label_tip=tk.Label(top,text=" !",height=2,\
width=40,fg="gray")
label_tip.pack()
btnCal=tk.Button(top,text=" ",fg="red",bg="yellow",command=cTofClicked) #
btnCal.pack()
top.mainloop() #
실행 결과인터페이스 이미지
텍스트 상자 에 그림 주 소 를 입력 하고"구 궁 격 그림 생 성 클릭"을 누 르 십시오.
이상 은 python 이 그림 9 궁 격 분할 을 실현 하 는 예제 의 상세 한 내용 입 니 다.python 그림 9 궁 격 분할 에 관 한 자 료 는 우리 의 다른 관련 글 을 주목 하 세 요!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
로마 숫자를 정수로 또는 그 반대로 변환그 중 하나는 로마 숫자를 정수로 변환하는 함수를 만드는 것이었고 두 번째는 그 반대를 수행하는 함수를 만드는 것이었습니다. 문자만 포함합니다'I', 'V', 'X', 'L', 'C', 'D', 'M' ; 문자열이 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.