Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Сохранение png картинки на сервер из Flash приложения (http://www.flasher.ru/forum/showthread.php?t=157973)

Universe 13.06.2011 16:05

Сохранение png картинки на сервер из Flash приложения
 
Добрый день. Думаю над тем как можно сохранить изображение в формате PNG из Flash на сервер. Насколько я понимаю для это в первую очередь нужна готовая BitmapData в самом Флешь, допустим что она есть, что с ней делать далее?

NikolyA 13.06.2011 16:14

а дальше в пхп ее отправляй:

Код:

<?php
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");

$image_data = $GLOBALS["HTTP_RAW_POST_DATA"] ;
$chars = "1234567890";
$filename = '';
$filename_length = 8;
while ($filename_length --) {
 $filename .= $chars[rand (0, strlen ($chars) - 1)];
}
$filename_to_save = "folder_images/" . $filename . ".png";

if(isset($image_data)){
        $png_file = fopen($filename_to_save, "wb") or die("File not opened!");
        if($png_file){
                  set_file_buffer($png_file, 20);
                  fwrite($png_file, $image_data);
                  fclose($png_file);
        }
}
       
        echo("done");
?>

в итоге получаю png на сервере в таком виде: 85723121.png

а во флеше делаю так:
Код AS3:

        import flash.net.URLRequest;
        import flash.net.URLVariables;
        import flash.utils.ByteArray;
 
        import com.adobe.images.PNGEncoder;
 
var data_bmp:BitmapData = new BitmapData(mcLayer.width,mcLayer.height);
//                        data_bmp.draw(mcLayer);
 
                        var png_image_data:ByteArray = PNGEncoder.encode(data_bmp);
 
                        var url_req:URLRequest = new URLRequest("img_create.php");
                        url_req.data = png_image_data;
                        url_req.method = URLRequestMethod.POST;
 
                        var header:URLRequestHeader = new URLRequestHeader ("Content-type", "application/octet-stream");
                        url_req.requestHeaders.push(header);
                        var u:URLLoader= new URLLoader();
                        u.load( url_req );

и собственно все

wvxvw 13.06.2011 16:23

NikolyA cпасибо за пост, но пожалуйста не используйте тег [php] для оформления. Он плохо сочетается с темой по умолчанию.

Universe 14.06.2011 13:49

Большое спасибо NikolyA, сейчас попробую!:)

BlackMetal 07.02.2012 10:06

мне щас нужно реализовать сохранение части изображения из флеша на сервер

Правильно понимаю что библиотеки com.adobe.images.PNGEncoder в базовой установке флеша нет и она является внешней?

Можно воспользоваться этим кодом и для сохранения в JPG? У всех кодеров возвращается ByteArray? т.е подход одинаковый?

И последний вопрос подскажите где скачать оптимальные кодеры JPG и PNG я так понимаю они разные бывают?

Fillini 07.02.2012 10:50

1. Правильно
2. Одинаковый
3. http://www.flasher.ru/forum/blog.php?b=203

BlackMetal 07.02.2012 14:31

четко, Fillini спасибо за ответы, а BloodHound'уреспект.


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

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