Ich schreibe eine plattformübergreifende mobile Anwendung mit Phonegap, und ich habe eine Datei-Upload-Eingang für Bild hochladen von Einzelbildern.Bild vor dem Hochladen mit Javascript schrumpfen
Das Problem ist, dass die meisten Bilder hochgeladen werden, die mit dem Handy, die etwa 4 MB groß sind, aufgenommen werden.
Ich möchte diese Bilder drastisch verkleinern, da ich sie in hoher Qualität überhaupt nicht brauche.
Auch ich brauche sie in base64 konvertiert und nicht in realen Bilddatei. (Das habe ich bereits mit FileReader)
Irgendwelche Ideen, wie man das erreicht? Vielleicht mit Leinwand oder etwas?
Update: hier ist das, was ich bisher:
function shrink() {
var self = this;
var reader = new FileReader(); // init a file reader
var file = $('#file-input').prop('files')[0]; // get file from input
reader.onloadend = function() {
// shrink image
var image = document.createElement('img');
image.src = reader.result;
var canvas = document.createElement('canvas');
var ctx = canvas.getContext('2d');
ctx.drawImage(image, 0, 0, 300, 300);
var shrinked = canvas.toDataURL('image/jpeg');
console.log(shrinked);
};
reader.readAsDataURL(file); // convert file to base64*/
}
aber alles, was ich bekommen, ist ein schwarzes Bild Dank
http: // Stackoverflow .com/questions/2434458/image-resizing-client-side-mit-javascript-vor-upload-to-the-server (was zu http://hacks.mozilla.org/2011/01/how-to- develop-a-html5-image-uploader /) – Sygmoral
aktualisiert in post – shaharmor