სურათების გამოყენება
წინა სტატიებში შევისწავლეთ თუ როგორ უნდა დავხატოთ ფიგურები და ტექსტები კანვასში. ამ სტატიაში კი განვიხილავთ თუ როგორ გამოვიყენოთ კანვასში სურათები. სურათები შეიძლება გამოვიყენოთ: დინამიური პოზიცირებისთვის, უკანა ფონისთვის და სხვა დანიშნულებისთვის.
სურათის ტიპს, რომელსაც გამოვიყენებთ, აუცილებლად უნდა ჰქონდეს მისი მხარდაჭერა ბრაუზერში, რათა ის კანვასში ჩავტვირთოთ. მსგავსი ტიპის ფორმატებია: PNG, GIF, JPG და JPEG.
კანვასში სურათების გამოყენებისთვის ორი პროცესია შესასრულებელი:
- რომელიმე ელემენტიდან უნდა ამოვიღოთ სურათის ობიექტი (
imgთეგიდან, სხვა კანვასიდან ან ვიდეოდან). ასევე შესაძლებელია უბრალოდ სურათის მისამართის მიწოდებაც. - დავხატოთ სურათი
drawImageმეთოდის გამოყენებით.
სურათის მიღება დასახატად
კანვასის API-ის გამოყენებისთვის შესაძლებელია შემდეგი ტიპები გამოვიყენოთ, როგორც სურათის წყარო:
HTMLImageElementსურათები რომლებიც შექმნილიაImageკონსტრუქტორით, ან<img>ელემენტი.SVGImageElementSVG სურათები, რომლებიც ჩაშენებულია<image>ელემენტით.HTMLVideoElement<video>ელემენტიდან შეგვიძლია ამოვჭრათ ამჟამინდელი კადრი (frame), რომელიც შეგვიძლია სურათად გამოვიყენოთ.HTMLCanvasElement, როგორც სხვა<canvas>ელემენტი, შეგვიძლია გამოვიყენოთ, როგორც სურათის წყაროდ.VideoFrameერთი ნებისმიერი კადრი (frame) ვიდეოდან, რომელიც შეგვიძლია სურათად გამოვიყენოთ.
სურათების ამოღება
წინა სტატიებში განვიხილეთ თუ როგორ შეიძლება ელემენტების ამოღება DOM-ის გამოყენებით.
სტატიაში განხილული მეთოდების გარდა კიდევ შეგვიძლია ერთი თვისება გამოვიყენოთ -
document.images, რომელიც დააბრუნებს სურათების მასივს.
სურათის შექმნა
სურათის შესაქმნელად შეგვიძლია Image კონსტრუქტორი გამოვიყენოთ.
const img = new Image();
img.src = 'https://iswavle.com/assets/images/js.png';const img = new Image();
img.src = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAADFSURBVDhP7ZMtDoQwEIVfVxAUgiB6B2pQaJAcAc29egASbCUHgBOAwmCqikGR/WkmId2wS7JrVuxnpnnTvMxPhl3v4AsuFD/mxw3WdcU8z/Y9TZONz5wOMc9zBEEAYwzatiV157SFMAyRpim2bSPF5dSAc46+71GWJSkubw2UUhiGAU3TYBxHUl1eGnRdh6Io4HkeqqoCY4wyLocGUkrbsxACy7KgrmtkWUZZl8MtPEqPoghaa8RxbFeZJAl836cfO/9bAG4DokeTflf1sgAAAABJRU5ErkJggg==';სურათის დახატვა
როცა სურათის ობიექტი გვექნება ამოღებული, მის შემდეგ სურათის დახტვა შესაძლებელია drawImage მეთოდით.
drawImage(image, x, y) მეთოდი
პარამეტრად ღებულობს 3 მნიშვნელობას:
image- სურათის ობიექტსx- X კოორდინატი თუ საიდან დაიწყოს სურათიy- Y კოორდინატი თუ საიდან დაიწყოს სურათი
დიაგრამის მაგალითი
მოდით, დავხატოთ დიაგრამა სხვადასხვა ხაზებით და უკანა ფონზე გამოვიყენოთ სურათი.
<canvas id="graphExample" width="180" height="150"></canvas>const graphExampleCanvas = document.querySelector('#graphExample');
if (graphExampleCanvas.getContext) {
const ctx = graphExampleCanvas.getContext('2d');
const img = new Image();
img.src = 'https://iswavle.com/assets/images/canvas-graph-bg.png';
img.onload = () => {
ctx.drawImage(img, 0, 0);
ctx.beginPath();
ctx.moveTo(30, 96);
ctx.lineTo(70, 66);
ctx.lineTo(103, 76);
ctx.lineTo(170, 15);
ctx.stroke();
};
}drawImage მეთოდს ასევე შესაძლებელია გადავცეთ width და height, რის მიხედვითაც
განისაზღვრება სურათის გაფართოება.
შეჯამება
ამ თავში განვიხილეთ თუ როგორ არის შესაძლებელი canvas-ის ელემენტში, სხვადასხვა ხერხით, დავამატოთ
სურათი.