html5+js: Auflösung oder die Größe der <input type=file-capture=camera>
Wie kann ich die maximale Auflösung oder die maximale Größe für ein Foto hochgeladen von einem Mobiltelefon aus über einen <input type=file capture=camera>
?
- stackoverflow.com/questions/8212041/...
- Mein Gerät ist dabei sehr großen Fotos, unabhängig davon, was der Wert für
data-max-size
ist. Die Dateien sind sehr groß, ich Frage mich, ob ich könnte sagen, das Gerät, um kleinere Bilder oder speichern Sie das Foto auf eine kleinere Größe und upload, statt.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Derzeit gibt es zwei W3C-backed Möglichkeiten der Aufnahme von Bildern (Bild-capture mit JavaScript /HTML):
[1] HTML-Media-Capture -
Es nutzt
capture
undaccept="image/*"
auf eineinput
- tag angeben wollen.Gemäß der Spezifikation, so ergibt sich NICHT können Sie festlegen, die Größe einer Aufnahme.
[2] Media Capture and Streams
Ermöglicht die voll programmgesteuerte Zugriff auf die Kamera, so dass Sie implementieren können, Ihre eigenen capture-Dialog (für video-und Standbilder). Des weiteren kann angegeben werden, Einschränkungen wie diese:
Globalen Browser-Unterstützung für die zweite Möglichkeit, ist 50%, also nur verwendbar in geschlossenen Räumen:
http://caniuse.com/#feat=stream
[1] http://www.w3.org/TR/html-media-capture/
[2] http://dev.w3.org/2011/webrtc/editor/getusermedia.html#constrainable-interface
Wie bereits erwähnt,
<input type=file accept="image/*">
Sie können nicht angeben, die Größe oder andere Optionen. Dies könnte schieben Sie in RichtunggetUserMedia()
. AbergetUserMedia()
, während es können Sie schnappen Sie sich einen frame eines video-Streams, nicht scheinen, um eine der Verfeinerungen für die gute stills - Blitz, Autofokus.Was gut für uns ist, greifen die immer noch mit
<input type=file>
dann die Größe in javascript mit Leinwand, dann wieder als data-url. Könnten Sie diese Antwort, um die Größe mit Bilineare interpolation. Dies verursacht uns performance-Probleme auf einigen Handys (iphone 5s). Wenn Sie auf einem Handy, würde ich empfehlen, tun Sie den ersten Schritt (Halbierung der Leinwand, Verringerung der Datei-Größe um einen Faktor von 4, sehr einfach, tun Sie es zweimal, wenn Sie möchten), und etwas anderes zu tun, wenn Sie wirklich brauchen, um, auf dem server.