واضح آرشیو وب فارسی:سایت ریسک: کمک در ساخت کلاس BMPDecode triton 27 بهمن 1389, 06:33سلام من یه کلاس واسه لود فایل های bmp نوشتم که فایل ها را لود می کنه ولی توی save اونها به مشکل بر خوردم.کلاس به صورت زیر هستش: package lib.flash.display.image { import flash.display.Bitmap; import flash.display.BitmapData; import flash.events.Event; import flash.events.IOErrorEvent; import flash.events.MouseEvent; import flash.events.SecurityErrorEvent; import flash.net.FileReference; import flash.utils.ByteArray; import flash.utils.Endian; import flash.events.EventDispatcher; /** * ... * @author Mahdi Abedi */ public class BMPDecode extends EventDispatcher { //---------------- evetns ----------- //---------when load complete: flash.events.Event.COMPLETE //-------------- variables ---------------- private var fr:FileReference; //-------------- gets/sets ----------- private var _bitmapData:BitmapData; public function get bitmapData():BitmapData { return _bitmapData; } //-------------- methods ------------- public function BMPDecode() { } public function browse(typeFilter:Array = null):void { fr = new FileReference(); fr.addEventListener(Event.SELECT, onSelect); fr.addEventListener(Event.COMPLETE, onComplete); fr.browse(typeFilter); } /*public function save(defaultFileName:String = null):void { if (defaultFileName == null) { defaultFileName = fr.name; } fr.save( fr.data , defaultFileName); }*/ //------------- handlers -------------- private function onSelect(e:Event):void { fr.load(); } private function onComplete(e:Event):void { var ba:ByteArray = fr.data; ba.endian = Endian.LITTLE_ENDIAN; ba.position = 10; var pixelOffset:uint = ba.readUnsignedInt(); ba.position += 4; var width:int = ba.readInt(); var height:int = ba.readInt(); ba.position = pixelOffset; var padding:int = (width * 3) % 4; _bitmapData = new BitmapData(width, height, false); for (var y:int = height - 1; y >= 0;--y) { for (var x:int = 0; x < width; ++x) { _bitmapData.setPixel(x, y, ba.readUnsignedByte() | ba.readUnsignedByte() << 8 | ba.readUnsignedByte() << 16 ); } ba.position += padding; } //--------- dispatch COMPLETE event dispatchEvent(new Event(Event.COMPLETE)); } } } چند روزی هست که به اون ور می روم ولی انگار نمی خواد درست بشه ...لطفا کمک کنید. ++Hadi++ 01 اسفند 1389, 08:52والا بهتره یه سمپل ساده fla هم می زاشتی تا راحت تر بررسی می کردیم . من خیلی وقت نکردم با کلاست ور برم و تا حالا هم خیلی با byte array سر encode وقت صر نکردم . کلاسترو یه نگاهی بنداز و کنار فولدر lib اون fla رو بزار و send کن تا سر فرصت ببینم و شاید به خواست خدا حللش کنم . بای... triton 06 اسفند 1389, 05:05سلام کلاس خیلی ساده هست و فکر نمی کردم که به مشکل بربخورید، به هر حال با چند خط کد مثل زیر می تونید ازش استفاده کنید: import flash.display.Bitmap; import flash.events.Event; import flash.net.FileFilter; import lib.flash.display.image.BMPDecode; var bmp:BMPDecode = new BMPDecode(); bmp.browse([new FileFilter("BMP images", "*.bmp")]); bmp.addEventListener(Event.COMPLETE, function() { var image:Bitmap = new Bitmap(bmp.bitmapData); stage.addChild(image); }); ++Hadi++ 14 اسفند 1389, 10:45دان کن : بای... triton 16 اسفند 1389, 17:07++Hadi++ () ممنون ولی من می خواهم همون BMP ذخیره بشه ... برای JPG ذخیره کردن که فکر نمی کنم کسی روی کره زمین مشکل داشته باشه (شوخی) ++Hadi++ 17 اسفند 1389, 13:16می گردم جوابشو بهت می گم فقط چجوریاست ، bmp رو می گیری و BMP پس می دی !!! سایت ما را در گوگل محبوب کنید با کلیک روی دکمه ای که در سمت چپ این منو با عنوان +1 قرار داده شده شما به این سایت مهر تأیید میزنید و به دوستانتان در صفحه جستجوی گوگل دیدن این سایت را پیشنهاد میکنید که این امر خود باعث افزایش رتبه سایت در گوگل میشود
این صفحه را در گوگل محبوب کنید
[ارسال شده از: سایت ریسک]
[مشاهده در: www.ri3k.eu]
[تعداد بازديد از اين مطلب: 273]