Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   загрузчик картинок (http://www.flasher.ru/forum/showthread.php?t=164989)

syegorius 19.08.2011 20:22

загрузчик картинок
 
доброе время суток... есть такая проблема - сервер крайне перегружен и объем дискового пространства ограничен, поэтому для того что бы обработка загружаемых пользователем фотографий дополнительно не нагружала сервер решил поискать в интернете исходники какого-нибудь флеш-приложения, которое будет еще на стороне пользователя обрабатывать фотографии, уменьшать их размер до, например, 100КБ и потом уже отправлять на сервер. в общем поиски закончились крахом... либо не работает во флеш 9, либо стоит денег и тоже не известно будет ли оно работать в 9 флеше, либо вообще просто тупо отправляет те же фотки такого-же размера...

если кто сталкивался с такой проблемой и знает, где можно скачать исходники такого приложения, то будьте добры подскажите где.

заранее спасибо!

Genzo 19.08.2011 20:50

FileReference + BitmapData + JPEGEncoder

NikolyA 19.08.2011 20:57

пишим клиента, пишем сервер, и вуаля, рабочее приложение

goodguy 19.08.2011 21:50

Цитата:

либо не работает во флеш 9
О каком флеш 9 речь? Adobe Flash CS3 чтоли?

Genzo 19.08.2011 22:12

Цитата:

О каком флеш 9 речь? Adobe Flash CS3 чтоли?
скорее всего о 9ой версии плеера , а не ide
Есть люди которые еще 8ой используют http://mycounter.com.ua/statistic.ph...ash&date=today

syegorius 19.08.2011 22:49

Цитата:

Сообщение от NikolyA (Сообщение 1023408)
пишим клиента, пишем сервер, и вуаля, рабочее приложение

ну если бы я был асом во actionscript, то я б написал но на данный момент моих знаний хватает только переделывать под себя готовые исходники

Добавлено через 37 секунд
Цитата:

Сообщение от goodguy (Сообщение 1023429)
О каком флеш 9 речь? Adobe Flash CS3 чтоли?

я имел ввиду flash player 9

nOobCrafter 19.08.2011 23:31

поищите норм примеры, их хватает, фп должен понимать векторы (по хорошему) и работу с байтмассивом.

syegorius 20.08.2011 00:09

и еще у меня сейчас возник такой вопрос (он не по теме, но да бы не флудить в других топиках спрошу тут)

все свои swf-файлы я вставляю с помощью swfobject. Скажите можно ли каким-то образом сделать так, что б если у клиента установлен flash player 8 или 9, то ему вместо файла выводилось сообщение, что ему необходимо обновить флеш-плеер или вообще автоматически, тайком от самого пользователя обновило его флеш-плеер?

NikolyA 20.08.2011 02:04

1. по задаче: тут тебе надо либо самому постараться сделать, либо заказать в вакансиях аппликуху
2. так SWFOject есть пример по flash player detected

syegorius 20.08.2011 03:02

были бы у меня лишние деньги, вы думаете ломал бы я себе голову как сделать то или се.
поэтому приходится все делать самому...

я вот щас наткнулся на статью http://habrahabr.ru/blogs/adobe/80954/, сделать получилось, но картинки не обрабатывает, а отправляет их такими как есть.
в конце статьи есть ссылка http://flexgraphix.com/blog/?p=51
типа как обрабатывать картинки дальше, но я не могу понять куда и как в flash buildere нужно вставлять тот код...

никто не намекнет как?

NikolyA 20.08.2011 05:59

http://www.flexgraphix.com/Lab/BitmapLoader/Archive.zip ссылка на архив ниже есть, открывай и используй

processo 14.09.2011 18:29

syegorius, сам 2 дня искал как это сделать, и вот собрал по кусочкам
Код AS3:

private function _onDataLoaded(e:Event){
                        var tempFileRef:FileReference = FileReference(e.target) ;
                        _loader = new Loader();
                        _loader.contentLoaderInfo.addEventListener(Event.COMPLETE, _onImageLoaded) ;
                        _loader.loadBytes (tempFileRef.data) ;
                        trace ("onDataLoaded");
            pgUpload.visible = false;
                }
 
                private function _onImageLoaded(e:Event){
                        _bitmap = Bitmap(e.target.content);
                        _bitmap.smoothing = true;                       
 
                        var jpgEncoder:JPGEncoder = new JPGEncoder(85);
                        var jpgStream:ByteArray = jpgEncoder.encode(_resizeBitmap(_bitmap.bitmapData));                       
                        var header:URLRequestHeader = new URLRequestHeader("Content-type", "application/octet-stream");
                        var jpgURLRequest:URLRequest = new URLRequest("uploads.php?name=image.jpg&dir=1");//(path+"upload.php?name=image.jpg&dir="+grId);
 
                        jpgURLRequest.requestHeaders.push(header);
                        jpgURLRequest.method = URLRequestMethod.POST;
                        jpgURLRequest.data = jpgStream;
                        navigateToURL(jpgURLRequest, "_self");                       
                }
 
                private function _resizeBitmap(bitmapData:BitmapData):BitmapData{
 
                        if (bitmapData.width <= _MAX_WIDTH && bitmapData.height <= _MAX_HEIGHT){
                                return bitmapData.clone();
                        }
 
                        var myMatrix:Matrix = new Matrix();                                                                                                       
                        var coefW:Number = _MAX_WIDTH / bitmapData.width;                       
                        var coefH:Number = _MAX_HEIGHT / bitmapData.height;
                        var multiplier:Number;
                        if (coefW > coefH){
                                multiplier = coefH;
                        } else {
                                multiplier = coefW;
                        }               
 
                        myMatrix.createBox(multiplier, multiplier, 0, 0, 0);
 
                        var newBitmapData:BitmapData = new BitmapData(multiplier * bitmapData.width, multiplier * bitmapData.height, true, 0xFFFFFF);
 
                        newBitmapData.draw(bitmapData, myMatrix , null, null, null, true);
 
                        return newBitmapData;
                }

_onDataLoaded отправляется после выбора изображения
Код AS3:

private function selectPhotos(e:MouseEvent){
                        fileUp = new FileReference;
                        fileUp.addEventListener(Event.SELECT, selectHandler);
 
            fileUp.addEventListener(Event.CANCEL, cancelHandler);                       
 
                        fileUp.browse([imagesFilter]);
 
                }               
 
                public function selectHandler(event:Event){           
                        fileUp.load();
                        fileUp.addEventListener(Event.COMPLETE, _onDataLoaded) ;

Теперь ищу как средствами php сохранить всё это на сервере))


Часовой пояс GMT +4, время: 01:43.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.