So habe ich eine Website (mit AngularJS), die Benutzer Dateien über Tag laden könnenDatei-Objekt Image-Objekt in JavaScript umwandeln
<input type="file" ng-model="image" id="trigger" onchange="angular.element(this).scope().setFile(this)" accept="image/*">
Wenn ich den Upload in der Steuerung verarbeiten das Bild als Datei-Objekt gespeichert wird . Das ist meine Methode, die die Datei speichert und legt auch Variablen das Bild, das ich versuche, um eine Vorschau
$scope.setFile = function (element) {
$scope.image = element.files[0]; // This is my image as a File
var reader = new FileReader();
//This is for previewing the image
reader.onload = function (event) {
$scope.image_source = event.target.result;
$scope.$apply();
}
reader.readAsDataURL(element.files[0]);
}
Jetzt bin das Bild mit JIC Bibliothek hier zu komprimieren: https://github.com/brunobar79/J-I-C/blob/master/src/JIC.js
Aber diese Bibliothek übernimmt ein Bildobjekt als sein Parameter und gibt es als komprimiertes Bildobjekt zurück. Ich kann anscheinend keine Möglichkeit finden, mein $ scope.image-Dateiobjekt in ein Image-Objekt zu konvertieren. Wie würde ich das machen?
Ich müsste das komprimierte Bildobjekt auch wieder in eine Datei konvertieren, damit ich es in meinen Azure-Speicher hochladen kann.
Vielen Dank genau das, was ich brauchte. – Evan
Mit einem ähnlichen Problem: jic.js: 22 Uncaught InvalidCharacterError: Fehler beim Ausführen von 'atob' auf 'Window': Die zu dekodierende Zeichenfolge ist nicht korrekt codiert. var Vorschau = document.querySelector ('# preview_image' + x); var file = document.querySelector ('# Bilder' + x) .files [0]; var reader = neuer FileReader(); var img = neues Bild(); img.src = Datei.src; img.src = jic.compress (img, 70, 'jpg'). Src; Irgendwelche Ideen? – Isengo