पर एनिमेटेड जीआईएफ मैं PHP + एचटीएमएल + सीएसएस + जावास्क्रिप्ट में ओपन-सोर्स फॉलआउटिश 2 गेम लिख रहा हूं। अभी इंजन से निपटना। मेरे पास यह gif है: https://dl.dropboxusercontent.com/u/4258402/nmwarrgb_e.gifजावास्क्रिप्ट: डेटा यूआरआई
... जिसे मैं डेटा यूआरआई में परिवर्तित करना चाहता हूं। मुझे ऐसा करने की ज़रूरत है क्योंकि ब्राउजर कैश छवियों को कैश करते हैं और यह एक लूप नहीं होता है, इसलिए जब एनीमेशन समाप्त होता है और यूनिट एक और टाइल पर जाता है तो इसे "इसे फिर से चलाने" में सक्षम होने के लिए, मुझे इसे डेटा यूआरआई में परिवर्तित करने की आवश्यकता होती है। अन्यथा मुझे छवि को फिर से डाउनलोड करने के लिए मजबूर होना होगा उदा। छवि फ़ाइल के अंत में यादृच्छिक स्ट्रिंग जोड़कर। जो ठीक काम करता है, लेकिन बहुत अधिक स्थानांतरण लेता है और अंतराल का कारण बनता है।
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;
};
दुर्भाग्य से यह केवल पहली फ्रेम के लिए डेटा यूआरआई का उत्पादन:
इस कोड मैं का उपयोग करने की कोशिश की है। मैंने प्लगइन खोजने की कोशिश की है, एचटीएमएल कैनवास के बारे में पढ़ रहा है, लेकिन अभी भी मुझे नहीं पता कि एनिमेटेड gif को डेटा URI में कैसे परिवर्तित किया जाए। कोई मदद बहुत ही होगी, बहुत स्वागत है!
एनिमेटेड gif कैनवास में एक एनीमेशन है? मुझे लगता है कि एनिमेट नहीं है। यह तुम्हारी समस्या है। क्या आपको इसे द्विपक्षीय रूप से परिवर्तित करने की आवश्यकता है? मैंने कहा, अगर आप अपने सर्वर पर छवियों को अपलोड किए बिना बेस 64 कोड को एक चर में रखना चाहते हैं, तो आप इसे ऑनलाइन उपकरण से एन्कोड कर सकते हैं और गेम चलने के दौरान आपको एन्कोड करने की आवश्यकता नहीं है। –
समस्या यह है कि लगभग 20 000 gif एनिमेशन हैं: -) और मेरे लिए चिंता यह है कि पहली बार खेलना समाप्त होने के बाद, इस gif को फिर से शुरू करने के लिए मजबूर करना है। आह, मुझे ब्राउजर को ट्रिक करने के लिए इसके अंत से जुड़े यादृच्छिक स्ट्रिंग के साथ कई अनुरोधों के साथ चिपकने की आवश्यकता होगी। – Rav
ओएमजी, तो मुझे लगता है कि sprites के बारे में मेरा जवाब descarted है। लेकिन आपको पता होना चाहिए कि स्प्राइट्स गेम में एनिमेशन के लिए सबसे अधिक उपयोग की जाने वाली तकनीक हैं। सौभाग्य ! –