2010-01-10 4 views
9

पर jte छवि भेजें ByteArray as3 से जावास्क्रिप्ट तक एक jpg छवि कैसे भेजें? और जावास्क्रिप्ट में छवि के लिए ByteArray को कैसे परिवर्तित करें?जावास्क्रिप्ट

उत्तर

2

जावास्क्रिप्ट और डोम वर्तमान वेब ब्राउज़र के कार्यान्वयन वास्तव में बात यह है कि इस तरह की कर के लिए अच्छा तंत्र नहीं है।

आपका सबसे अच्छा शर्त अपने AS3 छवि का एक बेस 64 एन्कोडेड संस्करण के साथ एक डाटा प्रोटोकॉल यूआरआई वापसी है। आधुनिक ब्राउज़र (आईई 8 +, एफएफ 2 +, आदि) एक आईएमजी टैग के एसआरसी के रूप में डेटा यूआरआई स्वीकार करेंगे और इसमें निहित छवि प्रस्तुत करेंगे।

http://en.wikipedia.org/wiki/Data_URI_scheme

आप एक AS3 विशेषज्ञ कैसे एक बेस 64 एन्कोडेड स्ट्रिंग में एक बाइट सरणी चालू करने के लिए समझाने के लिए होगा, लेकिन ऐसा लगता है कि मुश्किल नहीं हो सकता है।

+0

में Alex

+0

दरअसल काम किया है, कि पुराने ब्राउज़र संस्करणों में काम नहीं करेगा। एक डेटा यूआरआई का उपयोग कर के बिना, वहाँ रिकॉर्ड के लिए डोम के साथ ही ऐसा करने के लिए कोई दूसरा रास्ता नहीं है। – EricLaw

+2

, जिस तरह से करने के लिए रूपांतरण है: अपने DisplayObject ले लो (स्प्राइट/मूवीक्लिप/जो कुछ भी), यह BitmapData (myBitmapData.draw (mySprite);) में बदलने का, एक PNG एडोब के AS3CoreLib उपयोग करने के लिए है कि परिवर्तित (myByteArray = PNGEncoder.encode (myBitmapData);), कन्वर्ट कि Base64 के लिए प्रयोग कर फ्लेक्स के Base64Encoder (myBase64Encoder.encodeBytes (myByteArray);), तो ExternalInterface का उपयोग कर कुछ जावास्क्रिप्ट कार्य करने के लिए है कि निर्यात – Ender

4

ले लो अपनी DisplayObject (Sprite/MovieClip/जो कुछ भी) और यह एक BitmapData में बदलने का:

myBitmapData.draw(mySprite); 

फ्लेक्स के Base64Encoder का उपयोग कर का उपयोग कर एडोब के AS3CoreLib

myByteArray = PNGEncoder.encode(myBitmapData); 

कन्वर्ट कि Base64 के लिए एक PNG में बदलने कि :

myBase64Encoder.encodeBytes(myByteArray); 

export actionscript variables to JavascriptExternalInterface का उपयोग कर।

+0

अधिक से अधिक 3 साल के बाद ... और किसी और इस पोस्ट बहुत उपयोगी पाया !! आप बहुत बहुत धन्यवाद।! ! –

0

इस वर्ग करता है कि एक विधि है:

https://github.com/monkeypunch3/flexcapacitor/blob/master/MainLibrary/src/com/flexcapacitor/utils/DisplayObjectUtils.as

var data:String = DisplayObjectUtils.getBase64ImageDataString(); 

बुला इस स्ट्रिंग वापस आ जाएगी:

data:image/png;base64,... 

फिर आप की src सेट उस मूल्य के लिए एचटीएमएल में एक img।

संबंधित मुद्दे