Ich habe ein Formular, mit dem ein Benutzer ein Bild hochladen kann.
Sobald das Bild geladen ist, führen wir eine Skalierung durch, um die Dateigröße zu verringern, bevor wir es an den Server zurückgeben.
Dazu legen wir es auf die Leinwand und manipulieren es dort.
Dieser Code rendert das skalierte Bild auf der Leinwand mit einer Leinwandgröße von 320 x 240 Pixel:
ctx.drawImage(img, 0, 0, canvas.width, canvas.height)
... wobei canvas.width und canvas.height die Bildhöhe und -breite xa Skalierungsfaktor ist, der auf der Größe des Originalbilds basiert.
Aber wenn ich den Code benutze:
ctx.drawImage(img, 0, 0, canvas.width, canvas.height, 0, 0, canvas.width, canvas.height
... Ich bekomme nur einen Teil des Bildes auf die Leinwand, in diesem Fall die obere linke Ecke. Ich brauche das gesamte Bild "skaliert", um auf die Leinwand zu passen, obwohl die tatsächliche Bildgröße größer als die Leinwandgröße von 320 x 240 ist.
Für den obigen Code betragen die Breite und Höhe 1142 x 856, da dies die endgültige Bildgröße ist. Ich muss diese Größe beibehalten, um Beck an den Server zu übergeben, wenn das Formular gesendet wird, möchte aber nur, dass eine kleinere Ansicht davon im Canvas für den Benutzer angezeigt wird.
Was vermisse ich hier? Kann mich bitte jemand in die richtige Richtung weisen?
Vielen Dank im Voraus.
drawImage()
Funktion. Ein bisschen mit meiner OCD herumspielen;)