Flex actionscript problema
Sziasztok lenne egy kerdesem flex illetve actionscript be.
Az lenne a kerdesem hogy van egy bmp kepem es at szeretnem konvertalni png-nek hogy tudjam megjeleniteni flex be image tag segitsegevel mivel az image tag nem tudja megjeleniteni a bmp kepet ezert at kene alakitsam.
Az a problemam hogy a kep csak 8 bites es nem tudom atalakitani sehogyan sem.
az atalakitasat a kovetkezo keppen probaltam meg :
Az a baj hogy a 8 sorban a kovetkezo hibaval ter vissza
Error: Error #2030: End of file was encountered.
at flash.utils::ByteArray/readUnsignedInt()
Az lenne a kerdesem hogy ez a hiba azert vane mert nem tud nyolc bites kepet atalakitani a PngEncoder?
Ha esetleg ez igy nem mukodod kepes akkor tudnatoke mondani egy megoldast hogy a PngByteArray ben levo adatot hogyan tudnam atrakni egy bitmapdata ba hogy azt atkonvertalhassam png nek?
■ Az lenne a kerdesem hogy van egy bmp kepem es at szeretnem konvertalni png-nek hogy tudjam megjeleniteni flex be image tag segitsegevel mivel az image tag nem tudja megjeleniteni a bmp kepet ezert at kene alakitsam.
Az a problemam hogy a kep csak 8 bites es nem tudom atalakitani sehogyan sem.
az atalakitasat a kovetkezo keppen probaltam meg :
var file1:File=File(File.applicationDirectory.resolvePath("images\\image.bmp"));
/*if (!f.exists)
return;*/
var fileInStream:FileStream=new FileStream();
fileInStream.open(file1, FileMode.READ);
fileInStream.readBytes(PngByteArray);
PNG=Pngenc.encodeByteArray(PngByteArray,100,100);
var file:File=new File(File.applicationDirectory.resolvePath("images\\image.png").nativePath.toString());
try
{
fileInStream.open(file,FileMode.WRITE);
fileInStream.writeBytes(PNG,0,PNG.length);
fileInStream.close();
}
catch(e)
{
mx.controls.Alert.show("File write error");
}
Az a baj hogy a 8 sorban a kovetkezo hibaval ter vissza
Error: Error #2030: End of file was encountered.
at flash.utils::ByteArray/readUnsignedInt()
Az lenne a kerdesem hogy ez a hiba azert vane mert nem tud nyolc bites kepet atalakitani a PngEncoder?
Ha esetleg ez igy nem mukodod kepes akkor tudnatoke mondani egy megoldast hogy a PngByteArray ben levo adatot hogyan tudnam atrakni egy bitmapdata ba hogy azt atkonvertalhassam png nek?
PNG
Amennyiben mindenképpen Flex alatt akarod megoldani a konvertálást, akkor használhatod a következőket: Parsing and displaying BMP files via ActionScript vagy Using BMPDecoder class to Load an External BMP File(RLE Compression Support). Természetesen ez nagyon messze van az optimálistól, elvégre az ActionScript és a Flex nem igazán erre való.
flex
meg mielott a fajlot bmp formatumba irnam kapok egy bin kiterjesztesu fajlot abbol hogyan lehetne png tcsinalni?
Alkalmazás
file
parancsa.Off: lemaradt a billentyűzetedről a vessző karakter? Mert ha nem, érdemes lenne használni.
flex
Bitmapdata ba nem lehet valahogy beolvastatni a Bytearray tartalmat mert azt mar lehetne konvertalni a pngencoder segitsegevel?
Lehet
igen
atkonvertalja a bytearray-t bitmapdata ba?
Elolvastad?
unsigned int
(4 bájt) formában. Azaz ezen a tömbön végigmenve megkapjuk az összes pixel információját. Ha például a képünk 10x10 pixeles, akkor az első 10 32 bitesunsigned int
tartalmazza az első sor pixeleinek információját, a következő 10 a második sorét és így tovább. A 32 bitesunsigned int
a következő képpen épül fel: az első bájt az átlátszóságot (A) határozza meg, a második a vörös (R), a harmadik a zöld (G) és a negyedik a kék (B). Ezért nevezik ezt ARGB-nek. Amennyiben az adatod nem ilyen formában van, akkor át kell alakítani.Igen, pontosan ezt csinálja, amennyiben a ByteArray a megfelelő formában van.