![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Здравствуйте. В мувиклипе флешки в виде битмапа вставляю png, в котором часть пикселей не прорисована (не белые, а именно прозрачные - как во вложении). Далее пытаюсь сохранить её в файл на сервер:
package src { import flash.display.Sprite; import flash.net.*; import flash.utils.ByteArray; import flash.geom.Rectangle; import flash.events.*; import flash.display.BitmapData; import src.PNGEncoder; public class png extends Sprite { public function png() { var data_bmp:BitmapData = new BitmapData(mcLayer.width,mcLayer.height,true); 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.addEventListener(Event.COMPLETE, onCompl); u.load(url_req); } private function onCompl(e:Event):void { tst.text=e.target.data; } } } <?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"] ;
$filename_to_save = "123.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");
?>
Подозреваю, что это происходит ещё при создании битмапдаты? Как можно сделать, чтобы прозрачное оставалось прозрачным? |
|
|||||
|
Точно говорить не буду , но возможно http://help.adobe.com/ru_RU/FlashPla...BlendMode.html , в draw укажите BlendMode.ALPHA . сейчас просто нет возможности проверить т.ч. это только догадка
__________________
Gamedev != Gaming (http://twitter.com/#!/GenzoDev). Don't forget to [+] if it works. |
|
|||||
var data_bmp:BitmapData = new BitmapData(mcLayer.width,mcLayer.height,true); mcLayer.blendMode=flash.display.BlendMode.LAYER; //и без этого data_bmp.draw(mcLayer,null,null,'alpha'); Добавлено через 18 минут Пока суть да дело, додумался грузить файлы с компа, минуя отрисовку: public static var FILE_FILTER: Array = ["Images (*.png)", "*.png;*.PNG"]; private var file0: FileReference; //... public function png() { file0 = new FileReference(); file0.addEventListener(Event.SELECT, onFileSelected0); mcLayer.addEventListener(MouseEvent.CLICK, onBr); } private function onBr(e: MouseEvent): void { file0.browse([new FileFilter(FILE_FILTER[0], FILE_FILTER[1])]); } private function onFileSelected0(e:Event): void { if (file0.size == 0) { return; } file0.addEventListener(Event.COMPLETE, onFileLoaded0); file0.load(); } private function onFileLoaded0(e: Event): void { file0.removeEventListener(Event.COMPLETE, onFileLoaded0); var png_image_data: ByteArray = ByteArray(e.target.data); var url_req:URLRequest = new URLRequest("img_create.php"); //и т.д. } |
|
|||||
|
блогер
Регистрация: Oct 2005
Адрес: Днепродзержинск - город Брежнева и других логопедов
Сообщений: 1,421
Записей в блоге: 4
|
Создает битмапу, залитую белым, см. справку по BitmapData. Заливайте прозрачным цветом (например 0) и будет вам счастье.
__________________
Бобры отвечают на вопросы не потому, что знают на них ответы; они отвечают потому, что их спрашивают. |
![]() |
![]() |
Часовой пояс GMT +4, время: 02:49. |
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | |
| Опции просмотра | |
|
|