Как разобрать изображение в api напрямую
Вот как работает моя программа: я анализирую изображение, снятое моей камерой, в Emotion API, а затем получаю результат через следующий html:
{% extends "app/layout.html" %}
{% block content %}
<form action="{% url 'upload' %}" method="post" enctype="multipart/form-data" id="form1">
{% csrf_token %}
<div >
{% load staticfiles %}
<input id="id_file" name="file" type="file" src="{% static 'app/content/image0000000.jpg' %}" width="100" height="30"/>
</div>
<button type="submit" >Submit</button>
</form>
{% endblock %}
Линия <input id="id_file" name="file" type="file" src="{% static 'app/content/image0000000.jpg' %}" width="100" height="30"/>
НЕ РАБОТАЙ; кнопка выбора файла все еще показана
Соответствующие файлы Python:
from django.shortcuts import render
from django.http import HttpRequest
from django.template import RequestContext
from datetime import datetime
from .forms import UploadFileForm
from projectoxford.Client import Client
from projectoxford.Emotion import Emotion
from tempfile import TemporaryFile
from django.conf import settings
from PIL import ImageDraw
from PIL import Image
import base64
def home(request):
"""Renders the home page."""
assert isinstance(request, HttpRequest)
form = UploadFileForm()
return render(
request,
'app/index.html',
context_instance = RequestContext(request,{'form':form})
)
def upload(request):
if request.method == 'POST':
form = UploadFileForm(request.POST, request.FILES)
if form.is_valid():
file = request.FILES['file']
modified, happyscore = handle_uploaded_file(file)
modified.seek(0)
image = base64.b64encode(modified.read())
return render(request, 'app/result.html', {'image': image, 'ishappy':happyscore})
else:
form = UploadFileForm()
return render(request, 'app/index.html',{'form':form})
def handle_uploaded_file(file):
client = Client.emotion(settings.OXFORD_KEY)
recognizeResult = client.recognize({'stream': file})
im = Image.open(file)
draw = ImageDraw.Draw(im)
happyscore = 0
for emotionResult in recognizeResult:
#--emotion results will be here
modified = TemporaryFile()
im.save(modified,'JPEG')
return modified, happyscore
Однако вскоре я понимаю, что не могу загрузить файл напрямую без кнопки "выбрать". Но мне нужно, чтобы моя программа запускалась автоматически. Пожалуйста, посоветуйте, какой курс мне выбрать, потому что я действительно застрял на несколько недель большое спасибо ххххх!
Я смотрел в можно прочитать изображение с удаленного сервера, используя в двоичном режиме, используя JavaScript или PhoneGap? но из моего понимания новичка, мои изображения передаются в двоичную форму, когда они уже переданы в API; следовательно, я не уверен, что делать, если я использую этот метод для прямой загрузки. Спасибо!!!