2017-07-28 4 views
0

Ich habe ein Bild zum Beispiel "img/Myimage.jpg" Ich möchte es in das Uint8ClampedArray-Format konvertieren (wie im Bild gezeigt). enter image description hereKonvertiere ein Bild in ImageData (Uint8ClampedArray)

Für was? Ich benutze eine Bibliothek, die nach einem langen Prozess die Bilder in dieses Format konvertiert, aber ich habe andere Bilder, die ich selbst in das gleiche Format konvertieren muss. wie kann ich es tun? Entschuldigen Sie meine Unwissenheit

var frames = animator.frames; 
var res_c = document.getElementById("result"); 
var res_ctx = res_c.getContext('2d'); 
for (var x = 0; x < frames.length; x++) { 
    //***frames are ImageData (Uint8ClampedArray)*** 
    res_ctx.putImageData(frames[x],0,0); 
    console.log(frames[x]) 
    gif.addFrame(res_c,{copy:true,delay: 120}); 
} 

ich konvertieren müssen meine Bilder in Imagedata (Uint8ClampedArray) für andere hinzufügen Rahmen

Antwort

3

Sie Image Konstruktor verwenden können, CanvasRenderingContext2D.drawImage() und CanvasRenderingContext2D.getImageData() ein ImageData Objekt aus einer Bilddatei zu erstellen.

const canvas = document.querySelector("canvas"); 
const ctx = canvas.getContext("2d"); 
const width = 300; 
const height = 311; 

const image = new Image; 
image.src = /* Blob URL, "/path/to/image/served/with/cors/headers" */; 
image.onload =() => { 
    ctx.drawImage(image, 0, 0); 
    imageData = ctx.getImageData(0, 0, 300, 311); 
    console.log(imageData); 
} 
+1

Oder die gleiche Domäne ... –

+0

großartig! Dafür hast du "const" benutzt? In dieser Zeile muss ich den Weg meines Bildes angeben? Bild.src = "img/Myimage.jpg"? – yavg

+0

@yavg 'var' kann durch' const' ersetzt werden. Ja, der Pfad zu der Image-Datei sollte auf die '.src'-Eigenschaft der 'new Image'-Instanz festgelegt werden. – guest271314

Verwandte Themen