2012-05-24 4 views

답변

1

ByteArray의 형식은 무엇입니까? 픽셀이 32 비트 ARGB 형식 인 경우 새 BitmapData 개체를 만들고 BitmapData.setPixels()을 사용하여 픽셀을 설정할 수 있습니다. 그런 다음 비트 맵 데이터를 비트 맵 객체에 할당하면됩니다.

32 비트 ARGB 형식이 아닌 경우 먼저 변환해야합니다.

+0

재미있는합니다. ByteArray의 형식을 어떻게 알 수 있습니까? (ByteArray는 이미지이고 메타 데이터 정보도 포함합니다.) – Uli

+0

상위 수준 목표를 포함하도록 질문을 편집하십시오. 이러한 이미지를로드하는 데 필요한 것보다 더 복잡한 작업을하는 것처럼 들릴 수 있습니다. – shaunhusain

+0

이미지 파일 형식은 JPEG입니다. 내 상위 목표는 ByteArray를 가져 와서 다른 크기로 하드 드라이브에 JPEG로 저장하는 것입니다. – Uli

0

사용 로더

import flash.display.Loader; 
import flash.display.LoaderInfo; 
import flash.events.Event; 
import flash.display.BitmapData; 
  
private function startLoad():void 
{ 
    var loader:Loader = new Loader(); 
    loader.loadBytes(byteArray); 
    loader.contentLoaderInfo.addEventListener(Event.COMPLETE, loaderComplete); 
}   

private function loaderComplete(event:Event):void 
{ 
    var loaderInfo:LoaderInfo = LoaderInfo(event.target); 
    var bitmapData:BitmapData = new BitmapData(loaderInfo.width, loaderInfo.height, false, 0xFFFFFF); 
    bitmapData.draw(loaderInfo.loader); 
    // result: bitmapData 
} 
+0

귀하의 코드를 사용해 보았는데 그 코드로 저장 한 모든 이미지가 유효하지 않습니다. _draw_ 아래에이 코드를 추가하여 이미지를 드라이브에 저장했습니다 :'this.fileReference = new FileReference(); this.fileReference.save (bitmapData, "test.jpg"); 어떤 아이디어가 왜 이미지가 무효입니까? ' – Uli

2

나는 아래이 테스트가 잘 작동했다. Bytearray를 비트 맵으로 변환합니다. 이미지 형식이 부적절합니다. png, jpg, gif는 모두 비트 맵 데이터 클래스가 해석 할 메타 데이터에서 형식을 유지합니다. 저장시 JPEGEncoder 또는 PNGEncoder를 사용해야합니다.

 import mx.events.FlexEvent; 

     public var _file:File; 
     public var _stream:FileStream; 
     public var _load:Loader; 

     protected function init(event:FlexEvent):void { 
      _file = File.desktopDirectory; 
      _file.addEventListener(Event.SELECT, selectComplete); 
      _file.browseForOpen('Image'); 
     } 
     private function selectComplete(event:Event):void { 
      _stream = new FileStream(); 
      _stream.addEventListener(Event.COMPLETE, loadComplete); 
      _stream.openAsync(_file, FileMode.READ); 
     } 
     private function loadComplete(event:Event):void { 
      var ba:ByteArray = new ByteArray(); 
      _stream.readBytes(ba); 
      _load = new Loader(); 
      _load.contentLoaderInfo.addEventListener(Event.COMPLETE, loadbytesComplete); 
      _load.loadBytes(ba); 
     } 
     private function loadbytesComplete(event:Event):void { 
      var bit:Bitmap = _load.content as Bitmap; 
      img.source = bit; 
     } 
0
[Bindable] 
private static var m_barrLogo:ByteArray; 
. 
. 
. 
private function init_m_barrLogo():void 
{ 
    m_barrLogo = someValue; 

    // The Image below will automatically read the new value of the ByteArray and 
    // display the appropriate image. 
} 
. 
. 
. 
<mx:Image source="{m_barrLogo}" y="10" x="10" scaleContent="true" height="140" 
     width="145"/> 
관련 문제