Форум 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=177707)

kelod 06.04.2012 14:47

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

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

var shape:Shape = new Shape();
shape.graphics.lineStyle(15,0,10);
addChild(shape);
var isMouseDouwn:Boolean = false;
stage.addEventListener(MouseEvent.MOUSE_MOVE, funcMouseMove);
stage.addEventListener(MouseEvent.MOUSE_DOWN, funcMouseDown);
stage.addEventListener(MouseEvent.MOUSE_UP, funcMouseUP);
 
function funcMouseMove(e:MouseEvent):void {
        if(isMouseDouwn)
        shape.graphics.lineTo(mouseX, mouseY);
}
function funcMouseDown(e:MouseEvent):void {
        isMouseDouwn = true;
        shape.graphics.moveTo(mouseX, mouseY);
}
function funcMouseUP(e:MouseEvent):void {
        isMouseDouwn = false;
}

потом поизучав гугл пришёл к выводу что все переводят получившееся в ByteArray
Код AS3:

var raw:BitmapData = new BitmapData(stage.stageWidth, stage.stageHeight);
raw.draw(stage);
var brr:ByteArray = PNGEncoder.encode(raw); либо var brr:ByteArray = JPGEncoder.encode(raw);

получаем массив с данными, вот тут и вопрос что делать с этим массивом? мне нужно что бы картинка была сохранена на сервере

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

in4core 06.04.2012 14:54

Писал в свое время рисовалку, точно с такими же задачами. Насчет сохранения не помню, но вроде все просто, так же как и вы делаете. Вектор сохранить на сервер просто так не получится, вам нужно будет изучить спецификацию AI или CDR вообщем задача прилично сложная. Поэтому советаю остановится на растре

kelod 06.04.2012 14:59

хорошо растр так растр, как получить из ByteArray картинку на сервере?

in4core 06.04.2012 15:03

FileReference не ?

Добавлено через 1 минуту
PHP код:

<?php

// Читаем бинарные данные, присланные методом,
// описанным в предыдущем сообщении.
$binary file_get_contents('php://input');
file_put_contents('image.png'$binary);

// Стандартные функции PHP4, PHP5.
// А может не стандартные, а расширение GD/GD2.
$image imagecreatefrompng('image.png');
imagegif($image'image.gif');
imagejpeg($image'image.jpg');

?>


iNils 06.04.2012 15:05

Взять библиотеку Блуда.
С попощью нее сделать из байтмассива изображение нужного формата и отправить на сервер.

Newred 06.04.2012 15:11

Отправлять POST запросом на php.
Php определить как изображение и сохранить.

Vishapakahr 06.04.2012 15:29

А через amfphp не подскажете как можно выполнить ? скажем

Код AS3:

var ro:RemoteObject = new RemoteObjet();
.......
.....
ro.sendPng(brr);

PHP код:

function sendPng($brr){
  .....
// вот здесь наверно



Hidest 06.04.2012 18:04

Цитата:

Сообщение от in4core (Сообщение 1073424)
Писал в свое время рисовалку, точно с такими же задачами. Насчет сохранения не помню, но вроде все просто, так же как и вы делаете. Вектор сохранить на сервер просто так не получится, вам нужно будет изучить спецификацию AI или CDR вообщем задача прилично сложная. Поэтому советаю остановится на растре

Небольшой оффтоп: а зачем эта тяжелая артиллерия в виде .ai или .cdr? Тогда уж на порядок проще в svg.

PsixokoT 06.04.2012 18:13

Цитата:

Сообщение от kelod (Сообщение 1073421)
...
PS но с другой стороны картинку то мы получаем из линий, зачем её сохранять как растровое изображение? может можно как нибудь его сохранять как векторное?

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

TanaTiX 06.04.2012 18:44

В свое время необходим был подобный функционал (примитивный): все сводилось к передаче строковых данных на сервер/клиент и их парсинге на клиенте, также на сервер отдельно загружалось превью уже как картинка.


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

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