2014-08-27 3 views
0

Я пытаюсь сделать то же самое в python, что и я могу в JavaScript. В JavaScript я могу легко рисовать на холсте, а затем использовать toDataUrl (imageFormat, quality), чтобы получить изображение в кодировке base64.Python toDataUrl Equivalent

Есть ли что-нибудь в Python, которое может делать то же самое?

Я сделал это в Python

from PIL import Image, 

im = Image.new('L', (width, height)) 
output = StringIO() 
im.save(output, "JPEG", quality=89) 

но выход не в формате JPEG. Я считаю, что это в PNG.

Так или иначе, я могу выполнить то же самое, что и то, что делает URL-адрес todataurl? Мне нужно, чтобы это было в jpeg и при определенном качестве.

Если у кого есть какие-либо идеи о том, как идти об этом, это будет оценено

+0

Что это за 'im'? – BrenBarn

+0

@BrenBarn - Это похоже на PIL. – mgilson

+0

PIL Image.new. im = Image.new(). Я добавлю это тоже вопрос – Maccle415

ответ

1

Попробуйте это: выход

import base64 
from PIL import Image 
import StringIO 

im = Image.new('L', (width, height)) 
output = StringIO.StringIO() 
im.save(output, "JPEG", quality=89) 

encoded_string = base64.b64encode(output.getvalue()) 

образца с шириной = 50 и высотой = 50:

/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAQCAwMDAgQDAwMEBAQEBQkGBQUFBQsICAYJDQsNDQ0LDAwO 
EBQRDg8TDwwMEhgSExUWFxcXDhEZGxkWGhQWFxb/wAALCAAyADIBAREA/8QAHwAAAQUBAQEBAQEAAAAA 
AAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEI 
I0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1 
dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi 
4+Tl5ufo6erx8vP09fb3+Pn6/9oACAEBAAA/APz/AKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK 
KKKKKKKKKK//2Q== 
+0

Awesome большое спасибо! – Maccle415