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

FieryWall 24.10.2011 19:03

Битые кусочки битмапы
 
Опять всем привет!
Есть у меня картинка, то есть bitmapData, я делю ее на одинаковые кусочки создавая новые с помощью setPixels и getPixels. Проблма в том, что некоторые из них бьются наискось, причем всегда одинаково для одной картинки, есть картинки в которых не бьется вовсе. Буду рад любой помощи :o

http://imagestun.com/images/2011/5esxewpszy.jpg

Genzo 24.10.2011 19:04

Код в студию

gloomyBrain 24.10.2011 19:04

Попробуйте использовать BitmapData#copyPixels. Оно и побыстрее будет точно

FieryWall 24.10.2011 19:15

Код AS3:

private function parting():void 
                {
                        Big_Pic.graphics.clear();//контейнер картинки
                        var partWidth:Number = bit.width / partingType;//bit - картинка, partWidth - ширина кусочка, partingType - число(int)
                        var partHeight:Number = bit.height / partingType;//partHeight - высота кусочка
                        var mat:Matrix = new Matrix();
                        mat.createBox(Big_Pic.ramka.width / bit.width, Big_Pic.ramka.height / bit.height);//Big_Pic.ramka - внутренний контейнер
                        var i:int = partingType;
                        var movie:MovieClip;
                        var bitmapa:BitmapData;
                        var rect:Rectangle;
                        var rect2:Rectangle = new Rectangle(0,0,partWidth, partHeight);
                        while (i-- > 0) {
                                var j:int = partingType;
                                while(j-- > 0){
                                        rect = new Rectangle(j * partWidth, i * partHeight, partWidth, partHeight);
                                        bitmapa = new BitmapData(partWidth, partHeight);
                                        var biteArray:ByteArray = new ByteArray();
                                        biteArray = bit.getPixels(rect);
                                        biteArray.position = 0;
                                        bitmapa.setPixels(rect2, biteArray);
                                        movie = new MovieClip();
                                        movie.graphics.beginBitmapFill(bitmapa, mat, false, true);
                                        movie.graphics.drawRect(0, 0, (Big_Pic.ramka.width) / partingType, Big_Pic.ramka.height / partingType);
                                        Big_Pic.addChild(movie);
                                        movie.x = j * (Big_Pic.ramka.width / partingType);
                                        movie.y = i * (Big_Pic.ramka.height / partingType);
                                        picMovies.push(movie);
                                        picParts.push(bitmapa);
                                }
                        }
                        //addEventListener(Event.ENTER_FRAME, sorting);
                }


goodguy 24.10.2011 19:43

Офтоп, но people - это уже и так множественное число, оно не имеет формы peoples )

FieryWall 24.10.2011 19:49

Спасибо, вполне уместное замечание :mosking:
gloomyBrain: спасибо, попробую


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

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