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

Χρησιμοποιήστε το getImageData() για να αναστραφήσετε τα χρώματα όλων των πιξέλων της οθόνης.
JavaScript:
επιληπτής c=document.getElementById("myCanvas"); επιληπτής ctx=c.getContext("2d"); επιληπτής img=document.getElementById("tulip"); ctx.drawImage(img,0,0); επιληπτής imgData=ctx.getImageData(0,0,c.width,c.height); // Αναστροφή χρωμάτων για (επιληπτής 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 |
Σημείωση:Οι εκδόσεις του Internet Explorer 8 και παλιότερες δεν υποστηρίζουν το στοιχείο <canvas>.