Get Adobe Flash player
Главная » Flash Обучение » Flash Уроки Текстом » Сохраняем картинку из Flash посредством PHP (ActionScript 3)
Новинки 2011 Онлайн фильмы смотреть онлайн сериалы смотреть смотреть онлайн сериалы скачать фильмы торрент сериалы смотреть онлайн вверх www 2011 смотреть реальные пацаны фильмы торрент скачать бесплатные фильмы смотреть бесплатно смотреть онлайн бесплатно кино смотреть онлайн смотреть фильмы +в качестве смотреть лучшие фильмы онлайн смотреть фильмы +в хорошем качестве смотреть онлайн фильмы +в качестве смотреть фильмы онлайн хорошего качества смотреть бесплатно лучшие фильмы бесплатные смотреть фильмы хорошем качестве фильм смотреть бесплатно хорошего качества смотреть фильмы бесплатно +в качестве смотреть онлайн бесплатно лучшие фильмы фильмы онлайн смотреть бесплатно качество смотреть фильмы 2011 windows эмуляторы фильмы торрент
-->

Как создать?

Подпишитесь сейчас и вы получите на email серию бесплатных видеоуроков по flash.

Ваш e-mail:

Ваше имя на русском:

Подписавшись, Вы получите 4 видео урока, которые научат вас создавать flash презентации, flash баннеры, flash кнопки буквально за несколько минут!

Курс по flash cs5

 

Adobe Flash CS4 и Actionscript 3.0. Полный курс видео уроков.

Внимание!

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

110 видео уроков,

в превосходном качестве помогут пройти, Вам, терни flash анимации самым быстрым и легким путём!

+ActionScript 3.0

Подробнее!..

www.megastock.ru
Уведомление об ответственности

Вход на сайт



Регистрация / Напомнить?

return_links(2); ?> return_links(2); ?> return_links(1); ?> return_links(); ?>

Сохраняем картинку из Flash посредством PHP (ActionScript 3)

SarGun   8 апреля 2009    Раздел сайта: Flash Обучение » Flash Уроки Текстом

Всем привет!! Я думаю много кто задавался вопросом как сохранить изображение из Flash в файл(в этом уроке в файл *.jpg). Так же, в этом уроке я использую ООП (Объектно Ориентированное Программирование), т.е. Мы напишем класс SaveToFile, который будет собирать информацию о цветах пикселей мувиклипа и отправлять в скрипт PHP.

У ВАС ОБЯЗАТЕЛЬНО ДОЛЖЕН СТОЯТЬ СЕРВЕР ПОДДЕРЖИВАЮЩИЙ СКРИПТЫ PHP(У меня стоит Apache 2.0.58).

Если Вы не знакомы с классами — советую сначала изучить!

Поехали...

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

Создайте новый проэкт ActionScript 3 и сохраните его в папку saveImage под именем SaveToFile.fla. Теперь, рисуем на рабочем поле что угодно, что Вы хотите сохранить, или импортируйте картинку. Теперь переводим картинку в мувиклип и даём ему имя mc. Теперь создадим динамическое текстовое поле для сообщений от скрипта, и присвоим ему имя status_txt. Сдесь осталось добавить кнопку, при нажатии которой и будет происходить сохранение. Для это перетащите из списка компонентов компонент Button и присвойте ему имя save_btn. Вот что у меня вышло:

Сохраняем картинку из Flash посредством PHP (ActionScript 3)

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

alt

Теперь создаём файл ActionScript file:

Сохраняем картинку из Flash посредством PHP (ActionScript 3)

 

И сохраняем в папку src под именем SaveToFile.

И пешем в нём этот код:

package src{
/////// ИМПОРТ ВСПОМОГАТЕЛЬНЫХ КЛАССОВ //////////
import flash.display.Sprite;
import flash.geom.Rectangle;
import flash.events.*;
import flash.display.BitmapData;
import flash.utils.ByteArray;
import flash.net.*;
/////////////////////////////////////////////////
////// ОБЪЯВЛЕНИЕ КЛАССА //////
public class SendToFile extends Sprite {
////// ОБЪЯВЛЕНИЕ СВОЙСТВ КЛАССА /////////
private var myBitmapData:BitmapData;
private var byteArr:ByteArray;
//////////////////////////////////////////
////// КОНСТРУКТОР КЛАССА ////////////////
public function SendToFile():void {
//новый объект BitmapData с размерами равными мувиклипу на рабочем поле
myBitmapData=new BitmapData(mc.width,mc.height);
//отрисовываем в объект BitmapData мувиклип
myBitmapData.draw(mc);
//слушаем событие нажатия на кнопку сохранить
save_btn.addEventListener(MouseEvent.MOUSE_DOWN, downSave);
}
//////////////////////////////////////////
//////// ОБЪЯВЛЕНИЕ МЕТОДОВ КЛАССА ///////
//функция при нажатии на кнопку сохранить
private function downSave(e:MouseEvent):void{
//вызов функции организующей массив пикселей и
//отправляющей его в PHP скрипт
saveImage();
}
//функция отправки картинки в скрипт
private function saveImage():void {
//массив для пикселей
var pixels:Array = new Array();
//ширина картинки
var w:Number=mc.width;
//высота картинки
var h:Number=mc.height;
//перебираем все пиксели и добавляем их в массив pixels
for (var a:int = 0; a <= w; a++) {
for (var b:int = 0; b <= h; b++) {
//записываем значение цвета пикселя в 16-ричной форме
var tmp=myBitmapData.getPixel(a,b).toString(16);
pixels.push(tmp);
}
}
//путь для скрипта
var url:URLRequest=new URLRequest("save.php");
//создаём объект данных, которые будем отправлять
var variables:URLVariables = new URLVariables();
//добавляем в объект данных переменную img в которую
//записываем массив пикселей и сразу переводим массив в строку
variables.img=pixels.toString();
//добавляем в объект данных высоту картинки
variables.height=h;
//добавляем в объект данных ширину картинки
variables.width=w;
//присваиваем объект данных variables в качестве передаваемых данных
url.data=variables;
//указываем метод отправки
url.method=URLRequestMethod.POST;
//создаём объект URLLoader
var loader:URLLoader = new URLLoader();
//даём знать что возвращённые данный будут текстом
loader.dataFormat=URLLoaderDataFormat.TEXT;
//отправляем
loader.load(url);
//слушатель завершения отправки
loader.addEventListener(Event.COMPLETE, saveComplete);
//пока картинка сохраняется виден текст Сохранение...
status_txt.text = "Сохранение...";
}
//функция завершения отправки
function saveComplete( e:Event ):void {
var loader:URLLoader=URLLoader(e.target);
//присваиваем текстовому полю текст переданный скриптом
status_txt.text=loader.data;
}
//////////////////////////////////////////
}
///////////////////////////////
}
 

Теперь сохраняем всё , делаем публикацию swf и html. Остальное дело за скриптом PHP.

Создаём в папке saveImage текстовый документ и пишем в него:

<?php
$data = explode(",", $_POST['img']);
$width = $_POST['width'];
$height = $_POST['height'];
$image=imagecreatetruecolor( $width ,$height );
$background = imagecolorallocate( $image ,0 , 0 , 0 );
//Copy pixels
$i = 0;
for($x=0; $x<=$width; $x++){
for($y=0; $y<=$height; $y++){
$int = hexdec($data[$i++]);
$color = ImageColorAllocate ($image, 0xFF & ($int >> 0x10), 0xFF & ($int >> 0x8), 0xFF & $int);
imagesetpixel ( $image , $x , $y , $color );
}
}
//picture.jpg - имя(можно любое)
$rr=imageJPEG($image, "picture.jpg", 100);
if($rr){
//эта строка передаётся во флеш если картинка сохранена успешно
echo('Ваше фото успешно сохранено');
}else{
echo('Не удалось сохранить фото');
}
imagedestroy( $image );

 

Вот и всё! Закидываем файлы на сервер и проверяем!

Если всё правильно сделали в текстовом поле выдается текст:

Сохраняем картинку из Flash посредством PHP (ActionScript 3)

Исходные файлы: saveimage.rar [49,62 Kb] (cкачиваний: 911)

Возникнут вопросы обращайтесь... )

icq: 420260217

Просмотров: 16146 | Комментарии (14) | flash урок, actionscript 3, php
#1   vitkuz      8 апреля 2009 10:57   ICQ: --   



Регистрация: 17.07.2008
Публикаций: 100
Комментариев: 164
Ну вот, осталось это прикрутить к твоему граффити ) И можно вконтакт продавать )

За пост спасибо ) ОЧЕНЬ ПОЛЕЗНО! Сам не знал, ща буду пробовать.

PS:
Хотел порекомендовать бесплатный хостинг с поддержкой php и MYSQL и без рекламы для подобных эксперементов

https://realms.biz/

C народом и сравнивать нечего! В сто тысяч раз лучше dance3
#2   SarGun      8 апреля 2009 13:48   ICQ: 420260217   



Регистрация: 10.12.2008
Публикаций: 12
Комментариев: 60
юху! то что нужно пасиб!


--------------------
https://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/index.html
#3   Aloran      24 апреля 2009 12:04   ICQ: --   



Регистрация: --
Публикаций: 0
Комментариев: 0
Классный урок!!! Мне очень понравился!!! clapping
#4   TeT      5 июня 2009 15:58   ICQ: 8096403   



Регистрация: 8.02.2009
Публикаций: 23
Комментариев: 128
Подскажите, а если использовать файл php не загружая его на сервер ? Можно сделать что бы сохранялось ?


--------------------
Keyboard not found. Press any key to continue
#5   Fly      5 июня 2009 16:42   ICQ: --   



Регистрация: 21.07.2008
Публикаций: 66
Комментариев: 600
Можно этот момент протестировать с помощью ДЕНВЕРа: denwer.ru


--------------------
1) Админ всегда прав
2) Если админ не прав, смотри пункт 1

Мы в контакте - https://vkontakte.ru/club9573247
Не отвечаю на вопросы в личку касаемо Flash, у нас для этого есть форум
#6   SarGun      19 июля 2009 10:31   ICQ: 420260217   



Регистрация: 10.12.2008
Публикаций: 12
Комментариев: 60
Цитата: TeT
Подскажите, а если использовать файл php не загружая его на сервер ? Можно сделать что бы сохранялось ?

нет нельзя!!!


--------------------
https://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/index.html
#7   dr.S      13 октября 2009 14:52   ICQ: --   



Регистрация: --
Публикаций: 0
Комментариев: 0
Цитата: TeT
Подскажите, а если использовать файл php не загружая его на сервер ? Можно сделать что бы сохранялось ?
с пхп нельзя.
saveFile.save(...,"....png"); что-то вроде, например. с 10й версии плеера начиная - можно локально %)
#8   Neirol      24 октября 2009 23:18   ICQ: 407672443   



Регистрация: 14.09.2009
Публикаций: 20
Комментариев: 150
Можно, как уже сказал dr.S сначала сохранить с помощью saveFile, а относительный путь переделать в абсолютный и дать пользователю на скачку. =)


--------------------
Написал программу? Проверь на ошибки. Исправил ошибки? Проверь еще раз. Нет ошибок? Ты плохой программист!

https://prograph.ru/ - видео уроки по программированию в разных средах, а также справочники, программы и новости.

https://vkapi.easyflash.org/ - Как научиться создавать свои собственные flash-приложения, использующие ВКонтакте API и взаимодействие с веб-сервером?
#9   tracker      22 марта 2010 03:05   ICQ: --   



Регистрация: --
Публикаций: 0
Комментариев: 0
Не скачиваются исходники :-(
#10   Fly      25 марта 2010 10:16   ICQ: --   



Регистрация: 21.07.2008
Публикаций: 66
Комментариев: 600
Почему не скачиваются? Попробуйте правой кнопкой а потом выбрать сохранить как


--------------------
1) Админ всегда прав
2) Если админ не прав, смотри пункт 1

Мы в контакте - https://vkontakte.ru/club9573247
Не отвечаю на вопросы в личку касаемо Flash, у нас для этого есть форум
#11   besuhoff      30 мая 2010 11:39   ICQ: --   



Регистрация: --
Публикаций: 0
Комментариев: 0
плохо, что данные передаются в виде строки. получается, между клиентом и сервером неоправданно большой поток траффика идет, для сохранения 30-килобайтной картинки требуется почти мегабайт. оптимизировать бы
#12   as3coder      31 января 2011 08:58   ICQ: --   



Регистрация: 26.01.2010
Публикаций: 0
Комментариев: 2

А вот способ сохранения без участия сервера "Сохранение изображения на ActionScript 3.0"



--------------------
as3coder.blogspot.com
#13   aligarh      21 июля 2011 11:40   ICQ: --   



Регистрация: --
Публикаций: 0
Комментариев: 0
У меня 1/4 часть рисунка сохраняется нижний правый угол, не понял в чем дело
#14   Dimansel      10 октября 2011 16:30   ICQ: --   



Регистрация: --
Публикаций: 0
Комментариев: 0
as3coder, спасибо большое!
этот способ намного удобней =) 

Информация

Посетители, находящиеся в группе Гости, не могут оставлять комментарии в данной новости.