!

Dette materialet blir ikke lenger vedlikeholdt. Du vil finne oppdatert materiale på siden: http://borres.hiof.no/wep/

canvas
HTML5
Børre Stenseth
HTML > Canvas >Pixler

Canvas som bitmap

Hva
Canvas som en bitmap

Vi kan bruke en rekke verktøy for å genere innhold i et canvas-element. Uansett hvordan innholdet har oppstaått, lasting av bilde, interaktiv manipulasjon eller tegning, eller programmering, så kan vi betrakte innholdet som en bitmap, altså som en rute med pixler. HTML5CanvasTutorials [1] har en del stoff om blandt annet dette.

Dette kan vi bruke til mange ting. Vi kan spare innholdet som en bitmap og vi kan kopiere innholdt over til et bild, et img-element. Vi skal se på noen av disse mulighetene nedenfor.

Canvas til canvas

Her benytter vi oss av to metoder i canvas, getImageData og putImageData:

  var imgData=thecanvas.getImageData(left,top,width,height);
  // do something with imgData
  theOthercanvas.putImageData(imgData,left,top);

Koden som kopierer ser slik ut:

_copy.js

Hvis du vil se hvordan dataene, RGBA for hvert pixel, for originalbildet ser ut så


Canvas til image

Her benytter vi oss av en metode i canvas, toDataURL():

  var canvas = document.getElementById(canvasID);
  document.getElementById(imageID).src=canvas.toDataURL();
bilde

(og etterpå kan du høyreklikke på bildet for å spare det)

Koden som kopierer ser slik ut:

_makeimage.js

Koden som setter opp canvasen er slik:

_drawHead.js

Hvis du vil se de dataene som beskriver bildet og som settes som src i img-elementet så


Canvas til fil til canvas / bilde

Vi kan i prinsipp oppbevare pixeldata for en canvas enten som pixeldata slik vi får tak i dem med getImageData eller vi kan lagre dem slik vi får tak i dem med toDataURL. Vi velger den siste varianten og skriver kode som bruker AJAX til å spare en canvas, hente data tilbake fra fil og kopiere til en ny canvas og et bilde.

bilde

Koden som tar seg av sparing og lasting er slik

_loadsave.js


        
Referanser
  1. Canvas html5canvastutorials.com www.html5canvastutorials.com/ 02-10-2011
Vedlikehold

B. Stenseth, juli 2012

( Velkommen ) HTML > Canvas >Pixler ( Zoom )