나는 이미지에 그려보고 싶은 몇 가지 소름이 있습니다. 문제는 각 문자열이 각 이미지의 가운데에 표시되기를 바랍니다. 어떻게해야합니까? 또는 어떻게 문자열의 픽셀 단위로 길이를 알 수 있습니까? thanksPIL을 사용하여 이미지의 가운데에 텍스트를 그립니다.
1
A
답변
2
PIL 글꼴에는 글꼴의 너비와 높이를 가져올 수있는 getsize 메서드가 있습니다. 시도해 보셨습니까? 예 :
from PIL import Image, ImageDraw, ImageFont
fontFile = "/usr/share/fonts/truetype/freefont/FreeSansBold.ttf"
font = ImageFont.truetype(fontFile, 10)
text="anurag"
print font.getsize(text)
assert font.getsize(text)[0]*2 == font.getsize(text*2)[0]
당신은 당신이 바로 이미지를 만드는 대신 루틴을 직접 구현하지만, 코드가 너무 페이지에 포함되어 해당 페이지를 사용할 수
http://tools.jedutils.com/tools/center-text-image
에서 이것의 구현을 찾을 수
2
. 니콜의 조언에 따라
는from PIL import Image, ImageDraw, ImageFont, ImageFilter
import StringIO
filter_dict = {
'BLUR' : ImageFilter.BLUR,
'CONTOUR' : ImageFilter.CONTOUR,
'DETAIL' : ImageFilter.DETAIL,
'EDGE_ENHANCE' : ImageFilter.EDGE_ENHANCE,
'EDGE_ENHANCE_MORE' : ImageFilter.EDGE_ENHANCE_MORE,
'EMBOSS' : ImageFilter.EMBOSS,
'FIND_EDGES' : ImageFilter.FIND_EDGES,
'SMOOTH' : ImageFilter.SMOOTH,
'SMOOTH_MORE' : ImageFilter.SMOOTH_MORE,
'SHARPEN' : ImageFilter.SHARPEN
}
def get_font_full_path(font_path,font_name):
ext = '.TTF' if font_name.upper() == font_name else ".ttf"
return font_path + font_name + ext
def create_image(font_name, font_size, font_color, width, height, back_ground_color, text, img_type="JPEG", image_filter=None):
font_full_path = get_font_full_path(font_path,font_name)
font = ImageFont.truetype (font_full_path, font_size)
im = Image.new ("RGB", (width,height), back_ground_color)
draw = ImageDraw.Draw (im)
text_x, text_y = font.getsize(text)
x = (width - text_x)/2
y = (height - text_y)/2
draw.text ((x,y), text, font=font, fill=font_color)
if image_filter:
real_filter = filter_dict[image_filter]
im = im.filter(real_filter)
im.save ("sample.jpg", format=img_type)
`
관련 문제
- 1. UIImagePickerController의 가운데에 십자가를 그립니다.
- 2. PIL을 사용하여 이미지의 크기를 조정하고 가로 세로 비율을 어떻게 유지합니까?
- 3. 사각형의 위에 텍스트를 그립니다.
- 4. 코코아 뷰에서 중심 맞춤을 사용하여 텍스트를 그립니다.
- 5. Blackberry - 사용자 지정 ButtonField 가운데에 레이블을 그립니다.
- 6. PIL을 사용하여 RGB에서 HSV로 변환
- 7. Gtk.Entry에 텍스트를 가운데에 배치하는 방법?
- 8. FreeType을 사용하여 PIL을 재구성
- 9. Python에서 GLUT/OpenGL로 텍스트를 그립니다.
- 10. 테이블 중앙에 텍스트를 가운데에 유지
- 11. tabhost에 텍스트를 가운데에 배치하는 방법?
- 12. .Net의 이미지에 스트로크로 텍스트를 그립니다.
- 13. GDI +, DrawImage를 사용하여 원본 이미지의 투명 마스크를 그립니다.
- 14. PIL을 사용하여 파이썬에서 이미지로 캐리지 리턴
- 15. iphone에서 머리글 라벨의 가운데에 텍스트를 정렬하십시오.
- 16. CSS를 사용하여 html로 텍스트를 세로로 가운데에 맞추는 법
- 17. 텍스트의 세로 중심을 이미지의 세로 가운데에 맞추려면 어떻게합니까?
- 18. 이미지 모듈 (파이썬)을 사용하여 이미지에 히브리어 텍스트를 그립니다.
- 19. 레이블의 텍스트를 세로 가운데에 배치하는 방법은 무엇입니까?
- 20. msgbox에 텍스트를 가운데에 맞출 수 있습니까?
- 21. TextArea 텍스트를 가운데에 배치하는 방법은 무엇입니까?
- 22. 주어진 너비로 rect 안에 텍스트를 그립니다.
- 23. 캔버스의 왼쪽 상단 모서리에 텍스트를 그립니다.
- 24. CGPath를 사용하여 선을 그립니다.
- 25. PIL을 사용하여 삼각형 이미지 영역 복사
- 26. PIL을 사용하여 Tkinter Canvas widget에 이미지 삽입하기
- 27. PIL을 사용하여 원의 일부분을 채우는 방법은 무엇입니까?
- 28. perl GD 모양을 그립니다.
- 29. tesseract를 사용하여 이미지의 텍스트를 추출하는 중에 오류가 발생했습니다.
- 30. Matlab을 사용하여 대상 위에 사각형을 그립니다.
또한 경우에 구현 당신이에 연결 한 웹 사이트를 요약하는 것이 도움이 내려갑니다. –