|
|
« Предыдущая тема | Следующая тема » |
Опции темы | Опции просмотра |
|
|
|||||
Регистрация: Jan 2007
Сообщений: 368
|
Как получить снимок области экрана заданного размера
Подскажите как сделать снимок области экрана нужно размера.
Т.е. у меня есть клип Page, грубо говоря там изображение 2х страниц стоящих рядом(раскрытая книга). Как мне сделать два отдельных BitmapData чтобы в одном хранилась левая страница, а другом правая. Левую я получаю таким образом, как получить правую? clip=edit_mc.template_mc.page23 as Sprite; bmp=new BitmapData(clip.width/2, clip.height, true, 0); bmp.draw(clip); Params._page2_bitmap=bmp; clip=edit_mc.template_mc.page23 as Sprite; //вот как тут сдвинуть вправо область снимка?? bmp=new BitmapData(clip.width/2, clip.height, true, 0); bmp.draw(clip); Params._page3_bitmap=bmp; |
|
|||||
Регистрация: Aug 2009
Адрес: ХМАО
Сообщений: 47
|
copyPixels
позволяет скопировать кусок битмапы
__________________
Тяжела и неказиста жизнь простого программиста. Распрекрасна и богата жизнь межзвёздного пирата. |
|
|||||
Регистрация: Jul 2010
Сообщений: 110
|
Есть вариант заглянуть в хелп и увидеть, что в draw есть параметр clipRect, в нем задается область снимка:
draw(source:IBitmapDrawable, matrix:Matrix = null, colorTransform:ColorTransform = null, blendMode:String = null, clipRect:Rectangle = null, smoothing:Boolean = false) |
|
|||||
Регистрация: Jan 2007
Сообщений: 368
|
Что то попробовал вот так не получилось, битмап вообще пустой получается (
|
|
|||||
Регистрация: Jul 2010
Сообщений: 110
|
В том же хелпе сказано, что вместо matrix можно оставить null, но colorTransform = new ColorTransform(), и, наверное, blendMode = "normal"
|
|
|||||
Регистрация: Jan 2007
Сообщений: 368
|
хмм сделал так
все равно битмап чистый. может я не правильно Rectangle указал? |
|
|||||
Регистрация: Nov 2009
Адрес: в златоглавой
Сообщений: 745
|
Попробуй так:
Либо другой вариант: Левая: var leftPageCopyBmd:BitmapData = new BitmapData(clip.width/2, clip.height); //тут задаёшь размер копируемой области var lRect:Rectangle = new Rectangle (0, 0, clip.width/2, clip.height); //тут задаёшь верхнюю левую точку левой страницы x и y и размеры ширины/высоты прямоугольника leftPageCopyBmd.copyPixels (clipName, lRect, new Point()); var leftPageCopy:Bitmap = new Bitmap(leftPageCopyBmd); leftPageCopy.x = 100; // сюда задавай x leftPageCopy.y = 100; // сюда задавай y addChild(leftPageCopy); var rightPageCopyBmd:BitmapData = new BitmapData(clip.width/2, clip.height); //тут задаёшь размер копируемой области var rRect:Rectangle = new Rectangle (clip.width/2, 0, clip.width/2, clip.height); //тут задаёшь верхнюю левую точку правой страницы x и y и размеры ширины/высоты прямоугольника rightPageCopyBmd.copyPixels (clipName, rRect, new Point()); var rightPageCopy:Bitmap = new Bitmap(rightPageCopyBmd); rightPageCopy.x = 300; // сюда задавай x rightPageCopy.y = 100; // сюда задавай y addChild(rightPageCopy); Последний раз редактировалось tsarapkabel; 04.08.2010 в 16:09. |
|
|||||
Регистрация: Jan 2007
Сообщений: 368
|
нет он все равно создает снимок начиная с координат 0,0 клипа
|
|
|||||
Регистрация: Nov 2009
Адрес: в златоглавой
Сообщений: 745
|
Как это ты так быстро попробовал? Пробуй второй вариант, который я описал.
|
|
|||||
Регистрация: Jan 2007
Сообщений: 368
|
Спасибо помогло, сделал так:
bmp=new BitmapData(clip.width, clip.height, true, 0); bmp.draw(clip); var rect:Rectangle = new Rectangle(0, 0, clip.width/2, clip.height); var pt:Point = new Point(0, 0); var bmp1:BitmapData=new BitmapData(clip.width/2, clip.height, true, 0); bmp1.copyPixels(bmp, rect,pt); Params._page2_bitmap=bmp1; var rect2:Rectangle = new Rectangle(clip.width/2, 0, clip.width/2, clip.height); var bmp2:BitmapData=new BitmapData(clip.width/2, clip.height, true, 0); bmp2.copyPixels(bmp, rect2,pt); Params._page3_bitmap=bmp2; |
Часовой пояс GMT +4, время: 21:17. |
|
« Предыдущая тема | Следующая тема » |
|
|