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

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

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

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

Ответ
 
Опции темы
Старый 27.07.2007, 18:18   #1
Kurdt
ПроЭктировщик
 
Регистрация: 28.03.2007
Сообщений: 194
Написано 7 полезных сообщений
(для 25 пользователей)
Посоветуйте выбрать алгоритм

Я щас написал библиотеки для мп и програму для винды чтобы можно было создавать и потключать и отрисовывать любые шрифты с учетом ширины символов... есть перенос по словам печать в прямоугольную область.. разбивка на строки и все удобства... но я вот все таки не знаю какой для телефона сделать коректнее по производительности
а) создать масив картнок символов 32-255 (как это сделать чтоб прозрачность была в яве???ImageFromImage паскалевкий - не прозрачную выдает...) потом их выводить...
Б) Делать так как я сейчас делаю, это немного не коректно, но работает быстренько довольно... гдето выдает 5 кадров обрисовывания екрана в секунду на 176/220 , принцип работы:
M.G.setClip(x,y,iw,ih);
M.G.drawImage(i, x-ix, y-iy,20);
M.G.setClip(назад возвращаю...);
помоему это очень долго.... и не коректно...
Потому если кто знает помогите значит функцию сделать которая бы возвращала часть картинки... любым способом пусть даже и долгим... либу я скомпилю вы главное код напшите....
я немного смотерел яву но не вышло.. значит надо создать новый грффик имайж потом на него нарисовать картинку в определенном клипе и возвратить полученое изображение...
(Offline)
 
Ответить с цитированием
Старый 27.07.2007, 19:16   #2
Kurdt
ПроЭктировщик
 
Регистрация: 28.03.2007
Сообщений: 194
Написано 7 полезных сообщений
(для 25 пользователей)
Re: Посоветуйте выбрать алгоритм

как изменить этот код чтобы была прозрачность?? было бы неплохо чтоб еше и мидп 1.0 держал бы....

public static Image ii(Image image, int i, int j, int k, int l)
{
try
{
Image image1 = Image.createImage(k, l);
image1.getGraphics().drawImage(image, -i, -j, 20);
return image1;
}
catch(Exception exception)
{
return Image.createImage(1, 1);
}
}



drawImage
Draws the specified image by using the anchor point. The image can be drawn in different positions relative to the anchor point by passing the appropriate position constants. See anchor points.
If the source image contains transparent pixels, the corresponding pixels in the destination image must be left untouched. If the source image contains partially transparent pixels, a compositing operation must be performed with the destination pixels, leaving all pixels of the destination image fully opaque.

Рисует указанное изображение, используя донную точку. Изображение может рисоваться в различных положениях относительно донной точки, проходя подходящие константы положения. Посмотрите донные точки.
Если начальное изображение содержит понятные пиксели, соответственные пиксели в изображении назначения должны быть оставлены нетронутыми. Если начальное изображение содержит частично понятные пиксели, действие compositing должно выполняться с пикселями назначения, оставляя все пиксели изображения назначения полностью темнота.

что это означает?

Пока использую Image image1 = Image.createImage(image,i,j,k,l,0);
Но это уже мидп 2.0, а хочется создать универсальную вешь...
(Offline)
 
Ответить с цитированием
Старый 28.07.2007, 02:30   #3
ViNT
Модератор
 
Регистрация: 03.04.2007
Сообщений: 2,252
Написано 597 полезных сообщений
(для 817 пользователей)
Re: Посоветуйте выбрать алгоритм

А если шрифт рисовать с прозрачным фоном?
(Offline)
 
Ответить с цитированием
Старый 28.07.2007, 23:47   #4
Kurdt
ПроЭктировщик
 
Регистрация: 28.03.2007
Сообщений: 194
Написано 7 полезных сообщений
(для 25 пользователей)
Re: Посоветуйте выбрать алгоритм

Сообщение от ViNT
А если шрифт рисовать с прозрачным фоном?
Так я ж с прозрачным фоном и делаю.... Image image1 = Image.createImage(image,i,j,k,l,0); вот так работает только ужасно тупит на телефонах когда идет загрузка... гдет секунд 30 грузит 255 рсунков... и это мидп 2.0
Можно рисовать с использованием сетклип, но это тоже медленовато и не коректно...
(Offline)
 
Ответить с цитированием
Старый 30.07.2007, 11:53   #5
Piligrim
Оптимист
 
Регистрация: 07.01.2006
Сообщений: 961
Написано 105 полезных сообщений
(для 259 пользователей)
Re: Посоветуйте выбрать алгоритм

M.G.setClip(назад возвращаю...); делай только в конце вывода всей строки.По производительности быстрее будет метод А, но по расходу памяти метод Б. Для копирования с сохранением прозрачности можно использовать разложение Image на rgb
(Offline)
 
Ответить с цитированием
Старый 31.07.2007, 15:39   #6
Eddy
Нуждающийся
 
Регистрация: 24.05.2006
Сообщений: 64
Написано 0 полезных сообщений
(для 0 пользователей)
Re: Посоветуйте выбрать алгоритм

M.G.setClip(x,y,iw,ih);
M.G.drawImage(i, x-ix, y-iy,20);
в midp2 быстрее будет drawregion
(Offline)
 
Ответить с цитированием
Старый 01.08.2007, 12:38   #7
Piligrim
Оптимист
 
Регистрация: 07.01.2006
Сообщений: 961
Написано 105 полезных сообщений
(для 259 пользователей)
Re: Посоветуйте выбрать алгоритм

не факт. многие ява машины реализуют drawRegion именно через setClip, чтобы не думать.
(Offline)
 
Ответить с цитированием
Старый 01.08.2007, 15:45   #8
Kurdt
ПроЭктировщик
 
Регистрация: 28.03.2007
Сообщений: 194
Написано 7 полезных сообщений
(для 25 пользователей)
Re: Посоветуйте выбрать алгоритм

Спасиб. тогда сдеаю через драв реджин
Просто с использованием сетклип может возникнуть с основным циклом работы рограммы, когда нужно вывести например какуето месагу и чтоб текст не выводился за краи......

только что попробовал драврежин не работает на большинстве телефонов, даже на моем к750 не работает... на эмуляторах мидпикс и сановском работает отлмчно...
public static Image im(Image image, int i, int j, int k, int l)
{
try
{
Image image1 = Image.createImage(k, l);//(image,i,j,k,l,0);
image1.getGraphics().drawRegion(image,i,j,k,l,0,0, 0,20);

return image1;
}
catch(Exception exception)
{
return Image.createImage(1, 1);
}
}
public static void drawregion (Image image, int i, int j, int k, int l,int x,int y){

M.G.drawRegion(image,i,j,k,l,0,x,y,0);

}

Кстати вторая процедура рисует не прозрачную картинку в эмуляторе. а первая функция отдает прозрачный рисунок... но жаль на телефонах не работает.. только на емуляторах...

сделаю по другому методу, хотя он не очен коректени ресурсоемк
(Offline)
 
Ответить с цитированием
Старый 01.08.2007, 17:27   #9
Kurdt
ПроЭктировщик
 
Регистрация: 28.03.2007
Сообщений: 194
Написано 7 полезных сообщений
(для 25 пользователей)
Re: Посоветуйте выбрать алгоритм

сделал еше одну функцию... она тоже копирует без прозрачности :-(((

public static Image im2(Image image, int i, int j, int k, int l)
{
try
{
Image image1 = Image.createImage(k, l);//(image,i,j,k,l,0);
image1.getGraphics().drawImage(image, -i , j, 20);

return image1;
}
catch(Exception exception)
{
return Image.createImage(1, 1);
}
}

Хотя если заменитьimage1.getGraphics().drawImage(image, -i , j, 20);
на
image1.getGraphics().drawRegion(image,i,j,k,l,0,0, 0,20);
то прозрачность есть в процедре, только на телефонах не работает тока на эмуляторах....
(Offline)
 
Ответить с цитированием
Старый 02.08.2007, 21:06   #10
Eddy
Нуждающийся
 
Регистрация: 24.05.2006
Сообщений: 64
Написано 0 полезных сообщений
(для 0 пользователей)
Re: Посоветуйте выбрать алгоритм

я сделал так
public static void draw_region(Image src,
int x_src,
int y_src,
int width,
int height,
int transform,
int x_dest,
int y_dest,
int anchor)
{
M.G.drawRegion(src, x_src, y_src, width, height, transform, x_dest, y_dest, anchor);
}
переменной anchor надо присвоить 20
у меня прозрачность есть(и на эмуле и на е50)
(Offline)
 
Ответить с цитированием
Старый 03.08.2007, 01:01   #11
Kurdt
ПроЭктировщик
 
Регистрация: 28.03.2007
Сообщений: 194
Написано 7 полезных сообщений
(для 25 пользователей)
Re: Посоветуйте выбрать алгоритм

я точно так делал и 20 тоже... всеравно не работает на большинстве телефонов...
(Offline)
 
Ответить с цитированием
Старый 03.08.2007, 18:00   #12
Eddy
Нуждающийся
 
Регистрация: 24.05.2006
Сообщений: 64
Написано 0 полезных сообщений
(для 0 пользователей)
Re: Посоветуйте выбрать алгоритм

Kurdt, попробуй drawreq запустить, если пойдет значит у тебя ошибка где-то.
(Offline)
 
Ответить с цитированием
Старый 03.08.2007, 19:41   #13
Eddy
Нуждающийся
 
Регистрация: 24.05.2006
Сообщений: 64
Написано 0 полезных сообщений
(для 0 пользователей)
Re: Посоветуйте выбрать алгоритм

попробывал drawreq на сименсе сх70 - работает - 13 fps
на сонерике в700 - 59 fps
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Алгоритм MD5 Dialogus Библиотеки 7 07.02.2010 15:17
Что выбрать? zheland Болтовня 15 07.11.2008 19:23
помогите выбрать фотик Taugeshtu Болтовня 7 22.08.2007 21:42
Помогите выбрать. johnk Болтовня 14 12.05.2007 14:24
Помогите Выбрать Хостинг Magus Болтовня 6 25.05.2006 17:07


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


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