Μέθοδος Canvas getImageData()
Ορισμός και χρήση
getImageData()
Η μέθοδος επιστρέφει το αντικείμενο ImageData, το οποίο αντιγράφει τα δεδομένα pixel του καθορισμένου ορθογώνιου του καμβά.
Για κάθε pixel του αντικειμένου ImageData, υπάρχουν τέσσερις πτυχές πληροφοριών, δηλαδή οι τιμές RGBA:
- R - κόκκινο (0-255)
- G - πράσινο (0-255)
- B - μπλε (0-255)
- A - αλφα κανάλι (0-255; 0 είναι διαφανές, 255 είναι πλήρως ορατό)
Το color/alpha υπάρχουν ως πίνακας και αποθηκεύονται στον αντικειμενο ImageData data πρότυπο.
Συμβουλή:Μετά την ολοκλήρωση της λειτουργίας των πληροφοριών color/alpha στο σύνολο του πίνακα, μπορείτε να χρησιμοποιήσετε putImageData() Η μέθοδος αντιγράφει τα δεδομένα εικόνας πίσω στον καμβά.
Παράδειγμα:
Το παρακάτω κώδικας μπορεί να αποκτήσει τις πληροφορίες color/alpha του πρώτου pixel του ανεπιτυχώς επιστρεφόμενου αντικειμένου ImageData:
red=imgData.data[0]; green=imgData.data[1]; blue=imgData.data[2]; alpha=imgData.data[3];
Συμβουλή:Μπορείτε επίσης να χρησιμοποιήσετε τη μέθοδο getImageData() για να αναστρέψετε τα χρώματα όλων των pixel μιας εικόνας στον καμβά.
Χρησιμοποιήστε αυτή τη συνταγή για να διανύσετε όλους τους pixel και να αλλάξετε τις τιμές των χρωμάτων τους:
red=255-old_red; green=255-old_green; blue=255-old_blue;
Παρακαλώ δείτε το παράδειγμα που ακολουθεί στο "Προσωπική δοκιμή".
Εκδείξεις
Παράδειγμα 1
Το παρακάτω κείμενο χρησιμοποιεί το getImageData() για να αντιγράψει τα δεδομένα pixel του καθορισμένου ορθογώνιου του canvas, και στη συνέχεια χρησιμοποιεί το putImageData() για να τοποθετήσει τα δεδομένα εικόνας πίσω στο canvas:
var c=document.getElementById("myCanvas"); var ctx=c.getContext("2d"); ctx.fillStyle="red"; ctx.fillRect(10,10,50,50); function copy() { var imgData=ctx.getImageData(10,10,50,50); ctx.putImageData(imgData,10,70); }
Συμβουλή:Περισσότερα παραδείγματα στο κάτω μέρος της σελίδας.
Γλώσσα
var imgData=context.getImageData(x,y,width,height);
Τιμή παράμετρου
Παράμετροι | Περιγραφή |
---|---|
x | Η x συντεταγμένη του αριστερού πάνω γωνιακού σημείου του τομέα που θα αντιγραφεί. |
y | Η y συντεταγμένη του αριστερού πάνω γωνιακού σημείου του τομέα που θα αντιγραφεί. |
width | Το πλάτος του ορθογώνιου τομέα που θα αντιγραφεί. |
height | Το ύψος του ορθογώνιου τομέα που θα αντιγραφεί. |
Περισσότερα παραδείγματα
Παράδειγμα 2
Η εικόνα που θα χρησιμοποιηθεί:

Χρησιμοποιήστε το getImageData() για να αναστρέψετε τα χρώματα κάθε pixel της εικόνας του canvas.
JavaScript:
var c=document.getElementById("myCanvas"); var ctx=c.getContext("2d"); var img=document.getElementById("tulip"); ctx.drawImage(img,0,0); var imgData=ctx.getImageData(0,0,c.width,c.height); // Αναστροφή χρωμάτων for (var i=0;i<imgData.data.length;i+=4) { imgData.data[i]=255-imgData.data[i]; imgData.data[i+1]=255-imgData.data[i+1]; imgData.data[i+2]=255-imgData.data[i+2]; imgData.data[i+3]=255; } ctx.putImageData(imgData,0,0);
Υποστήριξη του προγράμματος περιήγησης
Ο αριθμός στην τάβλη δείχνει την έκδοση του προγράμματος περιήγησης που υποστηρίζει πλήρως την ιδιότητα.
Chrome | Edge | Firefox | Safari | Opera |
---|---|---|---|---|
Chrome | Edge | Firefox | Safari | Opera |
4.0 | 9.0 | 3.6 | 4.0 | 10.1 |
Σημείωση:O Internet Explorer 8 και οι προηγούμενες εκδόσεις δεν υποστηρίζουν το στοιχείο <canvas>.