Я делаю сайт, чтобы играть в карточные игры. Изображения карт загружаются с сервера в один большой PNG-файл. На стороне клиента, используя javascript, я хочу сделать несколько элементов, по одному для каждой карты.javascript PNG манипуляции
var cards = new Array(number of cards);
var request = new XMLHttpRequest();
request.responseType = "arraybuffer";
//alternatively: request.responseType = "blob";
request.onreadystatechange = function(){
var arrayBuffer = this.respons;
//how do I cut up the arrayBuffer such that i can use something like:
var urlCreator = window.URL || window.webkitURL;
var imageUrl = urlCreator.createObjectURL(cards[3]);
var img = document.getElementById("img");
img.src = imageUrl;
}
request.open("GET","cardsheet.png",true);
request.send();
arrayBuffer.slice (0, cardWidth) не работает, потому что это возвращает новое в изменяемом ArrayBuffer, и одна карты будет выйти из многократного arrayBuffer.slice (0, cardWidth). Причина, по которой я хочу сделать это, таков, что для загрузки всех карточек создается только один запрос на сервер. Если моя идея не будет выполнена, можете ли вы предоставить мне альтернативу?
Почему бы вам не использовать CSS фоновое положение, чтобы positionate изображение должным образом в карты, используя его в качестве фона? –
https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Images/Implementing_image_sprites_in_CSS –