Piszę grę Open-source Falloutish 2 w PHP + HTML + CSS + JavaScript. Teraz zajmuję się silnikiem. Mam to gif: https://dl.dropboxusercontent.com/u/4258402/nmwarrgb_e.gifJavascript: Animowany GIF do URI danych
... które chcę przekonwertować na dane URI. Muszę to zrobić, ponieważ przeglądarki przechowują obrazy w pamięci podręcznej, a ta nie jest zapętlona, więc aby móc "uruchomić ponownie" po zakończeniu animacji i przejściu do innego kafelka, muszę przekonwertować go na identyfikator URI danych. W przeciwnym razie byłbym zmuszony do ponownego pobrania obrazu w kółko, np. dodając losowy ciąg do końca pliku obrazu. Co działa dobrze, ale robi dużo za dużo transferu i powoduje opóźnienie.
Jest to kod próbowałem użyć:
var image = new Image();
(..)
this.convertImageObjectToDataURI = function (image) {
var canvasTemp = document.createElement('canvas');
canvasTemp.width = image.naturalWidth; // or 'width' if you want a special/scaled size
canvasTemp.height = image.naturalHeight; // or 'height' if you want a special/scaled size
canvasTemp.getContext('2d').drawImage(image, 0, 0);
var dataUri = canvasTemp.toDataURL('image/gif');
// Modify Data URI beginning
dataUri = "data:image/gif;" + dataUri.substring(15);
console.log(dataUri);
// Return image as Data URI
return dataUri;
};
Niestety produkuje URI danych tylko dla pierwszej klatki. Próbowałem wyszukiwania wtyczek, czytając o płótnie html, ale wciąż Po prostu nie wiem, jak konwertować animowany gif do URI danych. Każda pomoc byłaby bardzo, bardzo mile witana!
Animowany gif to animacja na płótnie? Myślę, że nie animuję. To Twój problem. Czy chcesz ją przekonwertować dinamicznie? Powiedziałem, że jeśli chcesz umieścić kod base64 w zmiennej bez wgrywania obrazów na serwer, możesz zakodować go za pomocą narzędzia online i nie musisz kodować podczas działania gry. –
Problem polega na tym, że istnieje około 20 000 animacji gif: -) A troską o mnie jest zmuszenie tego gifa do ponownego uruchomienia, po tym, jak skończy się gra po raz pierwszy. Ah, prawdopodobnie będę musiał trzymać się wielu żądań z losowym ciągiem dołączonym na końcu, by oszukać przeglądarkę. – Rav
OMG, wtedy moja odpowiedź na temat duszków jest descartowana, jak sądzę. Ale musisz wiedzieć, że duchy są najczęściej używaną techniką animacji w grach. Powodzenia ! –