|
|
|
JavaFX: Как манипулировать точками изображения?
|
|||
|---|---|---|---|
|
#18+
Тут написано, что такое возможно, но в JavaFX 2.0 SDK API в классе Image я не нашёл метода, подобного "platformImage", который изпользует автор. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2012, 17:25:50 |
|
||
|
JavaFX: Как манипулировать точками изображения?
|
|||
|---|---|---|---|
|
#18+
У вас статья про JavaFX 1.x, причем уже там platformImage был deprecated. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2012, 17:42:18 |
|
||
|
JavaFX: Как манипулировать точками изображения?
|
|||
|---|---|---|---|
|
#18+
Blazkowicz, А что взамен? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.03.2012, 09:23:17 |
|
||
|
JavaFX: Как манипулировать точками изображения?
|
|||
|---|---|---|---|
|
#18+
2skywriter К сожалению, эта полезная функциональность ожидается к добавлению только в 2.2 ( вторая половина 2012 ) Вот цитата из багтрекера, что хотят вынести в открытое АПИ 1) Render a scene to an (opaque) platform image 2) Create an Image object from a platform image 3) Convert a JavaFX Image object to a BufferedImage 4) Convert a BufferedImage to a JavaFX Image object We need to formalize this API and implement it in such a way that the core JavaFX module doesn't include a reliance on Swing / AWT / Java2D Используя нон-паблик, можно и сейчас ухитриться, но это чревато - код может стать нерабочим в любой момент. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.03.2012, 11:36:57 |
|
||
|
JavaFX: Как манипулировать точками изображения?
|
|||
|---|---|---|---|
|
#18+
Вот отстой... а я уже хотел было начать на JavaFX новый проект... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.03.2012, 15:19:57 |
|
||
|
JavaFX: Как манипулировать точками изображения?
|
|||
|---|---|---|---|
|
#18+
skywriterВот отстой... а я уже хотел было начать на JavaFX новый проект... И зачем вам пиксели в векторном движке? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.03.2012, 15:25:07 |
|
||
|
JavaFX: Как манипулировать точками изображения?
|
|||
|---|---|---|---|
|
#18+
Blazkowicz, отображать и обновлять в темпе поступления данных радиолокационную развёртку. Пробовал отображать квадратиками 2x2 - визир тормозит (даже под Windows, с изпользованием D3D), т.к. число узлов графа становится около 1 млн. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.03.2012, 15:41:25 |
|
||
|
JavaFX: Как манипулировать точками изображения?
|
|||
|---|---|---|---|
|
#18+
skywriterBlazkowicz, отображать и обновлять в темпе поступления данных радиолокационную развёртку. Пробовал отображать квадратиками 2x2 - визир тормозит (даже под Windows, с изпользованием D3D), т.к. число узлов графа становится около 1 млн. А зачем считывать данные непосредственно из сцены? Можно просто завести свой растровый Image и работать с ним. А его выводить на JavaFX. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.03.2012, 15:47:37 |
|
||
|
JavaFX: Как манипулировать точками изображения?
|
|||
|---|---|---|---|
|
#18+
Проблема явно не в скорости отрисовки. Зачем стараться отрисовывать 1000000 элементов, если они заведомо не влезут в 1920х1200 ( или получится монотонная заливка ) ? Может, отрисовывать только основные ( 1000 точек JavaFX2 потянет на 60фпс ) Многопоточность задействована? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.03.2012, 15:49:53 |
|
||
|
JavaFX: Как манипулировать точками изображения?
|
|||
|---|---|---|---|
|
#18+
skywriterBlazkowicz, отображать и обновлять в темпе поступления данных радиолокационную развёртку. Пробовал отображать квадратиками 2x2 - визир тормозит (даже под Windows, с изпользованием D3D), т.к. число узлов графа становится около 1 млн. Подход неверный. Неважно какая скорость поступления данных, скорость обновления картинки на экране которую замечает человеческий глаз примерно 24 кадра в секунду. Т.е. нет смысла делать чаще. Картинка на формочке имеет меньшее разрешение чем миллион пикселей наверна. Возможно ты по нескольку раз один и тот же пиксел меняешь что надо исправить. Положить картинку и менять в ней точки это значит бесполезно тратить ресурсы. Для рисования в жабе можно переопределить метод paint и вызывать invalidate вместо принудительной перерисовки, в примерах от JDK есть 2D рисование. Оно не тормозит с градиентами и анимацией. Т.е. там нет никаких проблем, можно запустить и посмотреть, разобрать код. Я не раз такое встречал, надо просто выяснить где двойная работа происходит и исправить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.03.2012, 16:19:51 |
|
||
|
JavaFX: Как манипулировать точками изображения?
|
|||
|---|---|---|---|
|
#18+
1024Неважно какая скорость поступления данных, скорость обновления картинки на экране которую замечает человеческий глаз примерно 24 кадра в секунду. Т.е. нет смысла делать чаще. Это сильно зависит от обстоятельств. Для динамической картинки на глаз можно различить и 60 и 100 fps. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.03.2012, 16:25:16 |
|
||
|
JavaFX: Как манипулировать точками изображения?
|
|||
|---|---|---|---|
|
#18+
Уж во всяком случае, быстрее 60 кадров в секунду точно смысла нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.03.2012, 16:31:33 |
|
||
|
JavaFX: Как манипулировать точками изображения?
|
|||
|---|---|---|---|
|
#18+
Blazkowicz1024Неважно какая скорость поступления данных, скорость обновления картинки на экране которую замечает человеческий глаз примерно 24 кадра в секунду. Т.е. нет смысла делать чаще. Это сильно зависит от обстоятельств. Для динамической картинки на глаз можно различить и 60 и 100 fps. 24 кадра это стандарт для тв и кино. Для вывода графика или датчиков вполне достаточно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.03.2012, 16:35:49 |
|
||
|
JavaFX: Как манипулировать точками изображения?
|
|||
|---|---|---|---|
|
#18+
102424 кадра это стандарт для тв и кино. ...для ТВ и кино двадцати летней давности. Современные телевизоры показывают 60-100Hz минимум. При этом ещё делают межкадровую интерполяцию для низкочастотного ТВ. Разница видна невооруженным глазом. А 24 кадра это минимальный порог при котором человек начинает воспринимать движущуюся картинку как плавную анимацию. 1024Для вывода графика или датчиков вполне достаточно. В данной задаче я бы отрисовывал в растровый буфер при поступлении данных. А буфер бы сбрасывал в JavaFX, с частотой на которой всё рендерится. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.03.2012, 16:41:18 |
|
||
|
JavaFX: Как манипулировать точками изображения?
|
|||
|---|---|---|---|
|
#18+
Blazkowicz, растр предполагается 1024x1024, т.е. будет весить 4 мб. Радиолокационная развёртка обновляется посекторно, полный круг за 4 секунды. FPS нужно обеспечить не ниже 10 Гц. Получается, каждую секунду будет создаваться и выбрасываться не менее 40 мб данных. Насколько это эффективно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.03.2012, 16:55:59 |
|
||
|
JavaFX: Как манипулировать точками изображения?
|
|||
|---|---|---|---|
|
#18+
skywriterBlazkowicz, растр предполагается 1024x1024, т.е. будет весить 4 мб. 4Мб кучу не нагнут. А можно ещё VolatileImage подъюзать и держать буфер в видюхе. skywriterРадиолокационная развёртка обновляется посекторно, полный круг за 4 секунды. FPS нужно обеспечить не ниже 10 Гц. Получается, каждую секунду будет создаваться и выбрасываться не менее 40 мб данных. Где логика? Зачем вам создавать новый буфер на каждый фрейм? Почему не хватает одного буфера, как во всём нормальном UI? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.03.2012, 17:03:05 |
|
||
|
JavaFX: Как манипулировать точками изображения?
|
|||
|---|---|---|---|
|
#18+
Blazkowicz, насколько я понял, единственный способ загнать буфер на сцену, это такой . Здесь каждый раз при отрисовке обновленённого буфера создаётся новый объект Image, который при создании копирует содержимое потока. Отсюда при 10 fps выбрасывается 40 мбайт/сек. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.03.2012, 17:10:34 |
|
||
|
JavaFX: Как манипулировать точками изображения?
|
|||
|---|---|---|---|
|
#18+
skywriterBlazkowicz, насколько я понял, единственный способ загнать буфер на сцену, это такой . Здесь каждый раз при отрисовке обновленённого буфера создаётся новый объект Image, который при создании копирует содержимое потока. Отсюда при 10 fps выбрасывается 40 мбайт/сек. 1. жавафх на данном этапе использовать нельзя. Они до 3-й версии ещё несколько раз поменяют АПИ и сломают обратную совместимость 2. начать надо с поиска узкого места. Вывод на экран не является узким местом. Чтобы в этом убедиться сделай в paint закраску квадрата 1024х1024 рандомными цветами и вызывай в цикле invalidate 10 раз в секунду. 3. растровые форматы типа жпег используют сжатие. Использовать их для вывода графиков значит бесполезно гробить ресурсы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.03.2012, 17:21:54 |
|
||
|
JavaFX: Как манипулировать точками изображения?
|
|||
|---|---|---|---|
|
#18+
skywriterBlazkowicz, насколько я понял, единственный способ загнать буфер на сцену, это такой . Здесь каждый раз при отрисовке обновленённого буфера создаётся новый объект Image, который при создании копирует содержимое потока. Отсюда при 10 fps выбрасывается 40 мбайт/сек. Ваша правда. Публичного API таки нет. Ни в Paint, ни в Image. Только backdoor: Image.impl_fromExternalImage(buffer) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.03.2012, 17:46:42 |
|
||
|
JavaFX: Как манипулировать точками изображения?
|
|||
|---|---|---|---|
|
#18+
В чём проблема держать данные в чистом виде, а перерисовывать смещение точек? 2000 объектов, 60 ФПС, пара процентов нагрузки ( установлена JavaFX 2.1.17 beta ) Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.03.2012, 17:52:06 |
|
||
|
JavaFX: Как манипулировать точками изображения?
|
|||
|---|---|---|---|
|
#18+
1024 жавафх на данном этапе использовать нельзя. Они до 3-й версии ещё несколько раз поменяют АПИ и сломают обратную совместимость Это ещё что за откровения св. Иоанна? :)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.03.2012, 17:53:42 |
|
||
|
JavaFX: Как манипулировать точками изображения?
|
|||
|---|---|---|---|
|
#18+
Также следует упомянуть, что оптимальным для подобных задач ( хотя и сейчас абсолютно не напряжно ) будет использование нового компонента Canvas ( к сожалению, тоже только в 2.2 ) JavaFX JiraDescritpion: We would like to have a JavaFX feature similar to HTML5 Canvas. Priority: Critical Fix version: 2.2 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.03.2012, 18:07:16 |
|
||
|
JavaFX: Как манипулировать точками изображения?
|
|||
|---|---|---|---|
|
#18+
tolyanchik, +1 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.03.2012, 20:02:26 |
|
||
|
JavaFX: Как манипулировать точками изображения?
|
|||
|---|---|---|---|
|
#18+
tolyanchikВ чём проблема держать данные в чистом виде, а перерисовывать смещение точек? Имхо, как-то не просто будет сигнал на объекты разложить. Хотя надо посмотреть на то что должно получится в итоге. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.03.2012, 20:08:22 |
|
||
|
JavaFX: Как манипулировать точками изображения?
|
|||
|---|---|---|---|
|
#18+
tolyanchikВ чём проблема держать данные в чистом виде, а перерисовывать смещение точек? 2000 объектов, 60 ФПС, пара процентов нагрузки ( установлена JavaFX 2.1.17 beta ) Хороший пример! Не знал, что можно так обновлять сцену. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.03.2012, 11:05:48 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=37712095&tid=2132263]: |
0ms |
get settings: |
13ms |
get forum list: |
20ms |
check forum access: |
5ms |
check topic access: |
5ms |
track hit: |
47ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
85ms |
get tp. blocked users: |
2ms |
| others: | 330ms |
| total: | 521ms |

| 0 / 0 |
