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

NikolyA 14.10.2011 04:27

разбивка и сохранение картинки частями
 
Доброго времени суток, нашел вот такой сервис: http://gpluspic.com/banner, хотелось бы узнать, как можно подобную манипуляцию по разбивке картинки, а затем ее сохранение, сделать флешовыми методами, если есть подобные реализации на флеше, поделитесь пожалуйста, так же хотелось бы знать что использовалось для разработки, видел в вконтакте приложения подобные так же, но в интернете примеров, исходных кодов, не нашел, подскажите куда смотреть? - только AS3 реализации, флекс тоже подойдет

GBee 14.10.2011 08:21

BitmapData.draw

или

BitmapData.copyPixels

или

BitmapData.getPixels + BitmapData.setPixels

NikolyA 14.10.2011 15:09

а что-то в плане реализаций, примеров, а то как работать с BitmapData я в курсе, а как сделать нечтно подобное, просто не знаю, а для работы нужно

GBee 14.10.2011 15:29

что не знаете? как вырезать из картинки прямоугольник 5x на х и порезать на пять частей х на х?

goodguy 14.10.2011 18:01

Блин, ну реализация же простейшая.
Набросал код за пять минут:
Код AS3:

package  {
        import flash.display.Bitmap;
        import flash.display.BitmapData;
        import flash.display.Sprite;
        import flash.geom.Point;
        import flash.geom.Rectangle;
 
        public class BitmapSplitter extends Sprite {
 
                [Embed(source = "beach.jpg")]
                private var Beach:                Class;
                private var _beach:                Bitmap        = new Beach as Bitmap;
                private var _numThumbs:        int        = 5;
                private var _spacing:                Number        = 7; // расстояние между эскизами
                private var _thumbHeight:        Number        = 70;
                private var _thumbWidth:        Number;
                private var _thumbY:                Number        = 120; // вертикальный оффсет, в оригинальной картинке
 
                public function BitmapSplitter() {
                        _thumbWidth                        = _beach.width / _numThumbs - _spacing * (_numThumbs - 1);
                        for (var i:int = 0; i < _numThumbs; i++) {
                                var thumbX:Number = i * (_thumbWidth + _spacing);
                                var thumb:Bitmap        = new Bitmap(new BitmapData(_thumbWidth, _thumbHeight, false, Math.random() * 100000000));
                                thumb.bitmapData.copyPixels(_beach.bitmapData, new Rectangle(thumbX, _thumbY, _thumbWidth, _thumbHeight), new Point());
                                thumb.x                        = thumbX;
                                thumb.y                        = _thumbY;
                                addChild(thumb);
                        }
                }
        }
}

Так же можно и сохранение прикрутить к этому. Например в массив все картинки затолкать, и пердать его классу, выполняющему сохранение куда нужно, или прямо из цикла сохранять

NikolyA 14.10.2011 19:46

goodguy спасибо, дальше с сохранением уже сам


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

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