Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   www.boolean.name > Программирование игр для мобильных телефонов > JAVA Micro Edition

JAVA Micro Edition Низкоуровневое программирование мобильных телефонов.

Ответ
 
Опции темы
Старый 28.03.2010, 16:32   #1
GRAY_WOLF
Разработчик
 
Аватар для GRAY_WOLF
 
Регистрация: 15.08.2008
Адрес: Нижегородская провинция
Сообщений: 389
Написано 48 полезных сообщений
(для 93 пользователей)
Вопрос Копирование прямоугольной области с текущего изображения на дисплее.

Как в java скопировать часть изображения с дисплея в переменную image по координатам (x1,y1,x2,y2) ? В МР для этих целей есть
function ImageFromCanvas(x1integery1integer;  x2integery2integer): image 
__________________
- Это мы накодили WINDOWS,
- Это мы надкусили APPLE,
- Нам играют живые The Beatles
- И нестареющий Вова Высоцкий...
(Offline)
 
Ответить с цитированием
Старый 29.03.2010, 09:48   #2
Жека
Дэвелопер
 
Регистрация: 04.09.2005
Адрес: Красноярск
Сообщений: 1,374
Написано 489 полезных сообщений
(для 882 пользователей)
Ответ: Копирование прямоугольной области с текущего изображения на дисплее.

Такого изящного копирования не знаю. Знаю такой: рисуешь всё не в графикс канваса, а в графикс рисунка.
Создаём картинку и задаём координаты начальной точки, откуда копировать:
int grabX = 20;
int grabY = 50;
int width = 100;
int height = 100;
boolean needGrab = false;
Image image = Image.createImage(width, height);
При установленном флаге needGrab подменяем графикс канваса на графикс рисунка, и делаем сдвиг, чтоб в точку (0,0) рисунка отобразилась точка (grabX, grabY) канваса.
Флаг можно устанавливать по нажатию кнопки или по какому тебе надо условию.
А вот кусок функции рисования канваса:
protected void paint(Graphics g)
{
    if(needGrab == true)
    {
        g = image.getGraphics();
        g.translate(-grabX, -grabY);
        needGrab = false; //одну отрисовку копируем и всё
    }
    //здесь идёт всё что есть по части рисования на канвасе
}
Ну и всё. После прохода с трюшным флагом в рисунок скопируется прамоугольная область канваса {grabX,grabY,width,height}.
(Offline)
 
Ответить с цитированием
Старый 05.04.2010, 14:17   #3
odd
Мастер
 
Аватар для odd
 
Регистрация: 06.09.2007
Адрес: Донецк, ДНР
Сообщений: 1,023
Написано 298 полезных сообщений
(для 713 пользователей)
Ответ: Копирование прямоугольной области с текущего изображения на дисплее.

Вот функция по фотографированию части экрана:

public static Image get_image(int xint yint wint h)
{
            
Image im2 null;
            
im2 Image.createImage(wh);
            
im2.getGraphics().drawImage(M.I, -x, -y20);
            return 
im2;

(Offline)
 
Ответить с цитированием
Старый 05.04.2010, 18:18   #4
GRAY_WOLF
Разработчик
 
Аватар для GRAY_WOLF
 
Регистрация: 15.08.2008
Адрес: Нижегородская провинция
Сообщений: 389
Написано 48 полезных сообщений
(для 93 пользователей)
Ответ: Копирование прямоугольной области с текущего изображения на дисплее.

Сообщение от odd Посмотреть сообщение
Вот функция по фотографированию части экрана:

public static Image get_image(int xint yint wint h)
{
            
Image im2 null;
            
im2 Image.createImage(wh);
            
im2.getGraphics().drawImage(M.I, -x, -y20);
            return 
im2;

А как на счет этой функции?

public static Image ii(Image imageint iint jint kint l)
    {
        try
        {
            
Image image1 Image.createImage(kl);
            
image1.getGraphics().drawImage(image, -i, -j20);
            return 
image1;
        }
        catch(
Exception exception)
        {
            return 
Image.createImage(11);
        }
    }

    public static 
Image ii(int iint jint kint l)
    {
        return 
ii(M.Iijkl);
    } 
Она аналогична предыдущей?
__________________
- Это мы накодили WINDOWS,
- Это мы надкусили APPLE,
- Нам играют живые The Beatles
- И нестареющий Вова Высоцкий...
(Offline)
 
Ответить с цитированием
Старый 09.04.2010, 21:13   #5
odd
Мастер
 
Аватар для odd
 
Регистрация: 06.09.2007
Адрес: Донецк, ДНР
Сообщений: 1,023
Написано 298 полезных сообщений
(для 713 пользователей)
Ответ: Копирование прямоугольной области с текущего изображения на дисплее.

Да, причем более безопасная. В случае глюка вместо снимка получишь картинку 1*1 пиксел.
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
GRAY_WOLF (12.04.2010)
Ответ


Опции темы

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

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


Часовой пояс GMT +1, время: 23:08.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com