2017-03-25 1 views
0

Ich gebe einen Text an der URL ein, und möchte heruntergeladen werden Bild, dass der Text zentriert ist.Mit Python pil, möchte ich Bild mit Text von URL zentriert und herunterladen. Wie es geht?

zum Beispiel wenn ich eingabe, http://127.0.0.1:8000/app/hello, dann wird ein Bild heruntergeladen. Das Bild zentriert den Text 'Hallo'

def homework(request, name): 
text = name 
img = Image.new('RGB',(256,256),(0,0,0)) 
draw = ImageDraw.Draw(img) 

font = ImageFont.load_default().font 
draw.text((128,128), text, font = font, fill="black") 

with open(img, 'rb') as f: 
    response = HttpResponse(f, content_type='image/jpeg') 
    response['Content-Disposition'] = 'attachment; filename="textimage"' 
    return response 

von Python pil verwenden.

Wie geht das?

+0

ja, def Hausaufgaben (Anfrage, Name): text = Name img = Image.new ('RGB' (256.256), (0,0,0)) Unentschieden = ImageDraw.Draw (img) font = ImageFont.load_default() Schrift draw.text ((128.128), Text, Schriftart = Schriftart, füllen = "black") mit offenem (img, 'rb') als f:. Antwort = HttpResponse (f, content_type = 'image/jpeg') Antwort ['Content-Disposition'] = 'Anhang; filename = "textimage" ' Antwort zurückgeben Ich bekomme ständig Fehler .. – SEUNGMIN

+0

Bitte bearbeiten Sie Ihre Frage enthält, es ist fast unmöglich, aus den Kommentaren zu lesen – abccd

+0

Jetzt habe ich bearbeitet. Bitte helfen .. – SEUNGMIN

Antwort

0
#install PIL (Pillow) via Pip 

from PIL import Image 
from PIL import ImageFont 
from PIL import ImageDraw 

#position of Text 
x = 50 
y = 50 

#font color as tuple 
color = (255, 255, 255) 

#download the image to the local system and open it 
img = Image.open("1.jpg") 

#draw image and prepare font 
draw = ImageDraw.Draw(img) 
font = ImageFont.truetype('arial.ttf', size=30) 

#draw text on image 
draw.text((x, y),"Sample Text", color,font=font) 

#save the new image, that contains the text 
img.save('sample-out.jpg') 
+0

Umm .. Ich möchte Text eingegeben, nicht "Beispieltext" Dann, wie kann ich tun? Ich Eingabe Text (eingegeben) anstelle von "Beispieltext", bekomme ich kontinuierlich UnicodeEncodeError .. – SEUNGMIN

+0

"Beispieltext" kann durch eine Variable ersetzt werden. Übergeben Sie eine Zeichenfolge. Ist "Text (eingegeben)" eine Funktion, die Sie verwenden? Gibt es eine Zeichenfolge zurück? – Nox21

+0

In meinem obigen Code schrieb ich 'def Hausaufgaben (Anfrage, Name):'. Ist der Name nicht variabel? wenn ich "Beispieltext" durch Namen ersetze, erhalte ich UnicodeEncodeError. Ich benutze es bei Django. – SEUNGMIN

Verwandte Themen