Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Как сохранить в *.PNG? (http://www.flasher.ru/forum/showthread.php?t=111445)

mixery 06.05.2008 13:38

Все были нубами, в т.ч. и а нглийском :)
Нашел еще один пример сохранения http://www.flash-db.com/Tutorials/snapshot/
Кажется, что он проще- там не нужно ничего еще, кроме того, что а врхиве. Тема не закрыта, уверен появятся еще трудности :)

mixery 06.05.2008 14:13

Этот способ не подходит - нужно сделать совсем все просто, swf-ка & php который все это дело сохранит. Чтобы ничего лишнего на сервер не ствить. Такие варианты существуют??

mixery 10.05.2008 10:36

Итак, снова здравствуйте. После долгих поисков по буржуйским сайтам я нашел примерно то, что нужно:
Как обычно в первом кадре-
Код:

import flash.display.BitmapData;
Butt.onPress = function() {
        output();
};
function output() {
        snap = new BitmapData(mc._width, mc._height);
        snap.draw(mc);
        var pixels:Array = new Array();
        var w:Number = snap.width;
        var h:Number = snap.height;
        for (var a = 0; a<=w; a++) {
                for (var b = 0; b<=h; b++) {
                        var tmp = snap.getPixel(a, b).toString(16);
                        pixels.push(tmp);
                }
        }
        var output:LoadVars = new LoadVars();
        output.img = pixels.toString();
        output.height = h;
        output.width = w;
        output.send("show.php", "output", "POST");
}
stop();

//имя мувика-картинки "mc"

& show.php-
Код:

<?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 );
                }
        }
        //Output image and clean
        header( "Content-type: image/jpeg" );
        ImagePNG( $image );
        imagedestroy( $image );       
?>

Доработать, чтобы сохранялось в отдельный файл, для более-менее опытного PHP-программиста не составит проблемы.

Разработка продолжается, о процесссе сообщать нужно? :) Да, все это на AS2 делается.

Psycho Tiger 10.05.2008 11:38

-_-
Подобная задача заставила перейти меня на ас3.
Когда ты оттчишь этот метод до блеска и все будет летать как на ас3 (а может уже и 4) это будет попросту никому не будет нужно, в том числе и тебе. Зачем использовать язык, который уступает в быстродействии и возможностях более его новой версии?

mixery 10.05.2008 14:17

*offtop
Дело в том, что я пока до конца не освоил AS2 и нехочу переходить на AS3, т.к. он сложнее (ну немного, да?). И исходников (по которым всегда проще разбираться) в инете на AS2 больше, хоть и на AS3 растет их количество. И совсем-совсем до блеска можно и не вылизывать ;) (хоть и нужно к этому стремиться)

Все ИМХО.

MrPoma 10.05.2008 16:27

Цитата:

Сообщение от mixery
Не хочу переходить на AS3, т.к. он сложнее.

Ошибочное предположение.

mixery 11.05.2008 10:59

Возможно, но все же. Следущий проект попробую начать на AS3 :)

А сейчас вот еще вопрос (не буду создавать тему отдельную): есть в рисовалке "инструмент" карадаш/кисть. Линии нормально рисую (т.е. нажал и пошевелил мышь-вот линия), но чтобы просто при клике оставался след карандаша (точка) сделать не получается :( Подскажите как это реализовать??

Psycho Tiger 11.05.2008 12:42

lineTo&moveTo?
Я делал так (моя рисовалка была без зума, поэтому мне это не критично)
Код:

//ну там всякие подготовки линиям
moveTo(_xmouse,_ymouse);
lineTo(_xmouse+1,_ymouse+1);

Цитата:

Ошибочное предположение.
Кому как, я уже привык все делать через опу, а ас3 этого не позволяет :)
Мне он сложнее в несколько раз, я как будто учу совершенно новый язык.

mixery 12.05.2008 01:07

Цитата:

Кому как, я уже привык все делать через опу, а ас3 этого не позволяет
Мне он сложнее в несколько раз, я как будто учу совершенно новый язык.
Дадададаааааа, соглашаюсь с каждым словом +)

lineTo&moveTo - да. Уже склонялся сам к такому решению вопроса, но как-то это все-таки через ж, а очется уже "через голову" начинать писать код.
А при перемещении курсора получается рисуется линия шире на +1? И что, если выбрать размер кисти в 1px, то рисуется в 2px?? Может нужно поставить значение 0,1???

*off
Неужели каждый начинающий флешер делает плеер (mp3 а потом flv), рисовалку и фотогалерею?? ))))

Wolsh 12.05.2008 09:38

1. Просто рисуется линия длиной 1 пиксель. Это выглядит почти как точка)))
2. Обычно flv - раньше. Хотя не знаю, смотря кто наверно. Я вот мп3 только сейчас начал, зато сразу на классах))))), а флв уже раз десять делал - но это связано с работой, промосайты фильмов и т.п.


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

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