django + PIL 대 django의 미디어 이미지 처리
8481 단어 django
최근에 프로젝트를 하나 하고 있는데 그중에 하나의 수요가 있다. 간단하게 말하면 다음과 같다.
전방에 문자열을 입력하여 백엔드 데이터베이스에서 데이터를 조회하고 조회된 결과와 미디어에 존재하는 이미지 템플릿을 결합하여 새로운 이미지를 생성합니다.마지막으로 결과를 앞쪽으로 되돌려줍니다.
실현 기술
구덩이
4
이 구덩이는 나를 밤새도록 구덩이에 빠뜨렸다. 처음에 나는 상대적인 경로를 사용했고 절대적인 경로를 사용했기 때문에 읽을 수 없었고 웹 페이지에 표시할 수 있었지만 로컬에서 쓴py 스크립트는 실현될 수 없었다.차갑다나중에 대량의 블로그를 뒤적였는데 번거롭지만 실현할 수 있는 방안을 발견했다. 먼저 Requests를 사용하여 그림을 얻은 다음에 조작하는 것이다. 그러나 이렇게 하면 그림의 질이 떨어지고 효율이 비교적 낮다.
from PIL import Image, ImageDraw, ImageFont
from io import BytesIO
import requests
response = requests.get('http://127.0.0.1:8000/media/1.jpg')
response = response.content
BytesIOObj = BytesIO()
BytesIOObj.write(response)
image = Image.open(BytesIOObj)
2분 후에...나는 원래 이렇게 간단하다는 것을 발견했다...setting에서 미디어의 경로를 설정한 후에 해당하는 파일에 도입하면 병합된 경로는 접근할 수 있지만 ''의 디코딩 문제에 주의해야 한다.
# setting.py
MEDIA_URL = "/media/"
MEDIA_ROOT = os.path.join(BASE_DIR,"media")
from PIL import Image, ImageDraw, ImageFont
from xibao.settings import MEDIA_ROOT
img = MEDIA_ROOT + "\\1.jpg"
image = Image.open(img)
그림 처리 코드
name = unicode(name ,"utf-8")
college = unicode(college, "utf-8")
major = unicode(major, "utf-8")
img = MEDIA_ROOT + "\\1.jpg" #
new_img = MEDIA_ROOT + "\\result\\" + identity + ".jpg" #
color = "#67625A" #
#
image = Image.open(img)
draw = ImageDraw.Draw(image)
width, height = image.size
name_x = 32
name_y = 263
name_text_front = ImageFont.truetype(r"C:\Windows\Fonts\simhei.ttf", 21)
draw.text((name_x, name_y), u'%s' % name, color, name_text_front)
college_x = 99
college_y = 364
college_text_front = ImageFont.truetype(r"C:\Windows\Fonts\simhei.ttf", 17)
draw.text((college_x, college_y), u'%s' % college, color, college_text_front)
major_x = 99
major_y = 396
major_text_front = ImageFont.truetype(r"C:\Windows\Fonts\simhei.ttf", 17)
draw.text((major_x, major_y), u'%s' % major, color, major_text_front)
#
image.save(new_img)
마지막으로 앱을 알려드릴게요.
생각났어...예를 들어 사용자 정의 워터프린트, 포스터 생성에 관한 것이다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Django의 질문 및 답변 웹사이트환영 친구, 이것은 우리의 새로운 블로그입니다. 이 블로그에서는 , 과 같은 Question-n-Answer 웹사이트를 만들고 있습니다. 이 웹사이트는 회원가입 및 로그인이 가능합니다. 로그인 후 사용자는 사용자의 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.