我想繪製一些圖像到imagea。問題是我希望每個字符串都顯示在每個圖像的中間。我該怎麼做?或者我怎麼知道字符串的像素長度(給出字體的字體)? 謝謝使用PIL將文本繪製到圖像的中心
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]
2
你可以找到http://tools.jedutils.com/tools/center-text-image
的這一個實現你可以使用該頁面創建的圖像就在那裏,而不是自己實施的常規,但代碼包含在頁面上了。
繼妮可的勸告
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. Java - 在圖像中心繪製文本
- 2. 如何使用ImageMagick將鏡像文本繪製到圖像上?
- 3. 通過PIL繪製無需裁剪的文本圖像
- 4. 繪圖使用PIL
- 5. python PIL在圖像上繪製多行文本
- 6. pil python多重圖像獨立繪製
- 7. 繪製圖像或繪製實心圓?
- 8. 使用PIL或枕頭繪製圖像並用TKinter顯示它
- 9. Python,PIL;文本到圖像和字體
- 10. 如何使用Python的PIL繪製換行符的文本
- 11. PIL - 繪製文本和保存
- 12. python pil繪製文本偏移量
- 13. 將圖像繪製到gtk.DrawingArea?
- 14. 繪製圖像的文本中間android
- 15. 使用PIL在App Engine上繪製圖像
- 16. PIL如何縮放與圖像上繪製的文字相關的圖像
- 17. 在Python中使用PIL繪製漸變
- 18. 如何使用Pillow/PIL庫在圖像中用鮮豔的顏色繪製點
- 19. 使用OpenGL從文本文件中繪製圖像
- 20. 使用imagemagik/PIL在python中的圖像上添加文本
- 21. 使用PIL繪製多語種文本(第二部分)
- 22. 如何將圖像合併到使用PIL/Pillow的畫布中?
- 23. 使用圖像模塊(python)將希伯來語文本繪製爲圖像
- 24. 用PIL繪製圖像的更快方式?
- 25. 將圖像繪製到畫布中
- 26. 如何在PIL中的透明圖像上繪製unicode字符
- 27. 在PIL中使用Webdings繪圖
- 28. 在PIL/TKinter中使用繪圖
- 29. 在UIView中使用CoreGraphics繪製圖像並在其上繪製文本drawRect
- 30. 使用核心繪圖基於圓半徑將散點圖繪製到Y軸
這是有幫助的也總結情況下,實現您已鏈接到該網站宕機。 – 2013-09-14 23:59:30