Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Flex (http://www.flasher.ru/forum/forumdisplay.php?f=84)
-   -   Редактирование изображений перед отправкой (http://www.flasher.ru/forum/showthread.php?t=121263)

GBee 12.02.2009 10:12

Alex Lexcuk, зачем лишаете человека эстетического удовольствия от решения задачи?

P.S. Хотя задача все равно заключается в сохранении картинки, а не текста. :о)

etc 12.02.2009 12:36

Alex Lexcuk, вы вопрос в начале темы читали?

ix18 12.02.2009 20:35

Спасибо большое, видимо это то, что надо :)

Однако, есть один вопрос:

Код AS3:

 
public function SaveByteArrayServerDoc():void
{
        try
        {       
                fileName = fr.name;
                request = new URLRequest(
                "http://localhost:81/pic_test/process.php?name="+fileName);
 
                request.data = fr.data; // fr.data - ByteArray из FileReference
                request.method = URLRequestMethod.POST;
                request.contentType = "application/octet-stream";
 
                var loader:URLLoader = new URLLoader();
                loader.addEventListener(Event.COMPLETE,uploadCompleteDataHandler);
                loader.addEventListener(ProgressEvent.PROGRESS,progressHandler);
                loader.load(request);
        }
        catch (ioError:IOError)
        {
            trace("IOError.");
        }                               
        catch (error:Error)
        {
            trace("Some other error.");
        }
}

На строчке
Код AS3:

var loader:URLLoader = new URLLoader();

происходит следующая ошибка времени выполнения:

Код:

Error #2044: Необработанный ioError:. text=Error #2032: Ошибка потока. URL: http://localhost:81/pic_test/process.php?name=DSC01627.JPG
Специально обрамил весь участок кода метода SaveByteArrayServerDoc() в try-catch блок, но все равно то же самое сообщение :(

Alex Lexcuk 12.02.2009 21:19

Апач включен?
Попробуйте из браузера вызвать свой адрес
Код:

http://localhost:81/pic_test/process.php?name=DSC01627.JPG
по моему коду у себя запускаю из IE7
Код:

http://localhost/CONTENT_PATH/save-file.php?name=fileName+&d=12341234
Интернет эксплоер выдает
file write - OK fileName .txt
И создается пустой файл с именем fileName .txt в директории виртуального сервера
CONTENT_PATH. И еще небольшой прикол: записывать вот так DSC01627.JPG непосредственно, надо думать об модернизации php скрипта, что бы он принимал только JPG, а не допустим php файл. Запись постороннем лицом своего php файла это такая дыра, что ваш сайт может моментально стать порно сайтом. Целесообразно передавать имя файла без расширения, а расширение .jpg дописывать можно и php скриптом.

ix18 12.02.2009 22:57

Цитата:

Интернет эксплоер выдает
file write - OK fileName .txt
И создается пустой файл с именем fileName .txt в директории виртуального сервера
CONTENT_PATH.
Да, действительно - это я ступил :) В моем скрипте была маленькая ошибочка :)

Цитата:

И еще небольшой прикол: записывать вот так DSC01627.JPG непосредственно, надо думать об модернизации php скрипта, что бы он принимал только JPG, а не допустим php файл.
Абсолютно верно, скрипт будет учитывать возможные пути его некорректного использования и пресекать их.

Еще раз огромное спасибо!

Добавлено через 43 часа 45 минут
Теперь непосредственно о редактировании. Общая схема такая:
1. Создание объекта BitmapData из ByteArray.
2. Манипуляция (масштабирование, поворот).
3. Перевод из BitmapData в ByteArray.

Вот как-раз по этому пункту и есть главный вопрос. Использую JPEGEncoder, метод encode. Все работает, но скорость оставляет желать много лучшего.

Причем, недавно довелось мне увидеть и использовать новую версию загрузчика изображений в социальной сети "ВКонтакте". Там, сразу после загрузки изображения пользователя во флеш, происходит масштабирование - прямо на клиенте - и занимает оно ...... - не более 5 секунд!

Причем, пробовал туда подсунуть изображение ~5000*3000, обработка которого посредством моего скрипта занимает на 2*ядерном процессоре примерно полминуты. А тут - 3 сек. Странно.

Может это Алхимия? Вобщем, очень хотелось бы услышать ваши мнения, может есть готовые паттерны или компоненты для решения такой задачи.

etc 14.02.2009 19:16

А с чего вы взяли, что обработка происходит на клиентской стороне?


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

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