Menu

Tuesday, June 18, 2013

[AS3] วิธีการบันทึกสกรีนเป็นภาพ
[AS3] How to Save Screen to an Image

ขั้นแรกอ่านข้อมูลบิทแมพจากสกรีน
First, get bitmap data from screen
  1. import flash.display.*;
  2. import flash.utils.ByteArray;
  3. ...
  4. var bitmapData:BitmapData = new BitmapData(this.width, this.height);
  5. bitmapData.draw(this);

ถัดมาทำการเข้ารหัสข้อมูลบิทแมพด้วยตัวเข้ารหัสภาพ
Next, encode bitmap data with image encoder

มีตัวเข้ารหัสภาพสองตัวที่สามารถใช้ได้ ประกอบด้วย PNGEncoder และ JPGEncoder
There are two image encoders include PNGEncoder and JPGEncoder

ถ้าใช้ PNGEncoder,
To use PNGEncoder,
  1. import com.adobe.images.PNGEncoder;
  2. ...
  3. var imgByteData:ByteArray = PNGEncoder.encode(bitmapData);

ถ้าใช้ JPGEncoder,
To use JPGEncoder,
  1. import com.adobe.images.JPGEncoder;
  2. ...
  3. var jpgEncoder:JPGEncoder = new JPGEncoder(quality);
  4. var imgByteData:ByteArray = jpgEncoder.encode(bitmapData);

หลังจากเข้ารหัส จะได้ข้อมูลไบต์ของภาพ
After encoding, the image byte data is acquired

ขั้นสุดท้ายทำการบันทึกเป็นไฟล์ภาพ โดยใช้ FileReference
Last, save image byte data to image file using FileReference
  1. import flash.net.FileReference;
  2. ...
  3. var fileReference:FileReference=new FileReference();
  4. fileReference.save(imgByteData, ".jpg");

หมายเหตุ: ไฟล์ไดอะล็อกจะปรากฎ เพื่อให้กำหนดไฟล์ปลายทางที่จะบันทึก
Notice: File dialog will be shown to select destination

No comments:

Post a Comment