Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Поиск рулит! Сообщения за день Все разделы прочитаны
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 03.02.2012, 00:51
Tr1te вне форума Посмотреть профиль Отправить личное сообщение для Tr1te Найти все сообщения от Tr1te
  № 1  
Ответить с цитированием
Tr1te
 
Аватар для Tr1te

Регистрация: Jun 2009
Сообщений: 461
По умолчанию Как сделать BitmapData.draw определенной области?

Например у меня есть огромный спрайт. Больше чем 4кХ4к пикселей, и мне нужно сделать BitmapData.draw определенной области, скажем начальная точка прямоугольника в 3к на 3к, а конечная 7к на 7к. Как это сделать?


Последний раз редактировалось Tr1te; 03.02.2012 в 00:54.
Старый 03.02.2012, 00:59
GBee вне форума Посмотреть профиль Отправить личное сообщение для GBee Найти все сообщения от GBee
  № 2  
Ответить с цитированием
GBee
 
Аватар для GBee

Регистрация: Jan 2009
Сообщений: 3,067
Записей в блоге: 3
Отправить сообщение для GBee с помощью Skype™
Matrix?
__________________
Чтобы доказать, что вы не робот, причините вред другому человеку.

Старый 03.02.2012, 01:29
HardCoder вне форума Посмотреть профиль Отправить личное сообщение для HardCoder Найти все сообщения от HardCoder
  № 3  
Ответить с цитированием
HardCoder
 
Аватар для HardCoder

блогер
Регистрация: Apr 2011
Сообщений: 583
Записей в блоге: 2
Параметр clipRect метода draw?
__________________
Я мало чего умею, но зато хорошо умею учиться...

Старый 03.02.2012, 01:46
dimarik вне форума Посмотреть профиль Отправить личное сообщение для dimarik Найти все сообщения от dimarik
  № 4  
Ответить с цитированием
dimarik
.
 
Аватар для dimarik

модератор форума
Регистрация: Sep 2003
Адрес: Москва
Сообщений: 4,630
Записей в блоге: 20
clipRect вырезает, matrix отрисовывает.
__________________
Воспитан в TimeZero. Работаю в Mail.ru.

Старый 03.02.2012, 01:48
ЗлОй ПрОграММер вне форума Посмотреть профиль Отправить личное сообщение для ЗлОй ПрОграММер Найти все сообщения от ЗлОй ПрОграММер
  № 5  
Ответить с цитированием
ЗлОй ПрОграММер

Регистрация: Nov 2010
Сообщений: 434
допустим есть битмапа myBitmap(400x400) нужно срисовать её середину
Код AS3:
import flash.geom.Matrix;
 
var bmd: BitmapData;
var bmp: Bitmap;
bmd = new BitmapData(200, 200);
bmd.draw(myBitmap, new Matrix(1, 0, 0, 1, 100, 100));
bmp = new Bitmap(bmd);
addChild(bmp);


Последний раз редактировалось ЗлОй ПрОграММер; 03.02.2012 в 12:02.
Старый 03.02.2012, 01:55
dimarik вне форума Посмотреть профиль Отправить личное сообщение для dimarik Найти все сообщения от dimarik
  № 6  
Ответить с цитированием
dimarik
.
 
Аватар для dimarik

модератор форума
Регистрация: Sep 2003
Адрес: Москва
Сообщений: 4,630
Записей в блоге: 20
Цитата:
Сообщение от ЗлОй ПрОграММер Посмотреть сообщение
допустим есть битмапа myBitmap(400x400) нужно срисовать её середину
В виде прямоугольной области x=100, y=100, width=50, height=50 на координаты x=25, y=25;

Я же вам русским по коричневому написал, что matrix отрисовывает.
__________________
Воспитан в TimeZero. Работаю в Mail.ru.


Последний раз редактировалось dimarik; 03.02.2012 в 01:57.
Старый 03.02.2012, 12:19
ЗлОй ПрОграММер вне форума Посмотреть профиль Отправить личное сообщение для ЗлОй ПрОграММер Найти все сообщения от ЗлОй ПрОграММер
  № 7  
Ответить с цитированием
ЗлОй ПрОграММер

Регистрация: Nov 2010
Сообщений: 434
был не прав, каюсь, стыдно да и в целях оправдания - сообщение ваше не видел, почти в одно время написали)
да и чтоб исправиться
Код AS3:
bmd.draw(myBitmap, null, null, null, new Rectangle(100, 100, 200, 200));


Последний раз редактировалось ЗлОй ПрОграММер; 03.02.2012 в 12:25.
Старый 05.02.2012, 17:39
Tr1te вне форума Посмотреть профиль Отправить личное сообщение для Tr1te Найти все сообщения от Tr1te
  № 8  
Ответить с цитированием
Tr1te
 
Аватар для Tr1te

Регистрация: Jun 2009
Сообщений: 461
Спасибо, но все эти варианты не подходят.

Потому что когда делаешь Rectangle, то он не crop`ает (не обрезает) область rectangle`а. Он просто копирует пиксели которые попали в rectangle, а остальные пиксели становяться ничем.

Тоесть если у меня есть полотно 6000х6000, и мне нужно сделать draw области от 2000х2000 до 6000х6000, пишу:
Код AS3:
bmd.draw(myBitmap, null, null, null, new Rectangle(2000, 2000, 4000, 4000));
это не работает, потому что он из за ограничения Bitmapdata в 4000х4000 пикселей делает следующее: Создает Bitmapdata размером 4000х4000 и копирует область которая попала в Rectangle и в ограничения Bitmapdata, а именно от 2000х2000 до 4000х4000, а начальные пиксели заполняет ничем. А мне нужно сделать draw именно области от 2000х2000 до 6000х6000.

Кто нибудь знает как это сделать?

Старый 05.02.2012, 17:51
silin вне форума Посмотреть профиль Посетить домашнюю страницу silin Найти все сообщения от silin
  № 9  
Ответить с цитированием
silin
 
Аватар для silin

блогер
Регистрация: Mar 2003
Адрес: Моск. обл.
Сообщений: 5,269
Записей в блоге: 6
>> нужно сделать draw области от 2000х2000 до 6000х6000
Код AS3:
var mtrx:Matrix = new Matrix();
mtrx.translate(-2000, -2000);
bmd.draw(myBitmap, mtrx);

Старый 05.02.2012, 18:55
Tr1te вне форума Посмотреть профиль Отправить личное сообщение для Tr1te Найти все сообщения от Tr1te
  № 10  
Ответить с цитированием
Tr1te
 
Аватар для Tr1te

Регистрация: Jun 2009
Сообщений: 461
Большое спасибо.

Создать новую тему Ответ Часовой пояс GMT +4, время: 17:28.
Быстрый переход
  « Предыдущая тема | Следующая тема »  
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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