PaintCAD Mobile - журнал разработки

Аватара пользователя
blackstrip
Админ
Сообщения: 1277
Зарегистрирован: Ср янв 02, 2008 1:42 pm
Откуда: Подольск
Контактная информация:

Re: PaintCAD Mobile - журнал разработки

Сообщение blackstrip » Вс авг 17, 2025 3:10 pm

Следующие модули - ei1, ei2, ei3 - прокладки для использования ExtendedImage в телефонах-сименсах для рисования и хранения в памяти чернобелых картинок, или его эмуляция через Image для других телефонов. Окошек там нет, поэтому их не нужно масштабировать.

Следующее окошко Exchan:

Изображение

Ревизия окна Exchan

Окошко для эффекта "Эффекты" - "Доп.эффекты" - "Обмен каналов", можно выбрать какие R, G, B каналы во что превратить. Например, можно занулить канал, обратить, скопировать из другого, поменять местами (например, меняем R на G, а G на R - и красная картинка превращается в такую же зеленую) и т.д.

В последней beta-версии оно было таким:

Изображение

Добавляем масштабирование, сдвиги в виртуальных пикселях. Сами компоненты уже под масштабирование исправлены при работе над предыдущими окнами, получается вот такое окно:

Изображение

Тут всего шесть строк+две на заголовок и софт-клавиши. Они должны хорошо влезть на экран любого телефона, включая андроиды.

Проверка окна Exchan на тестовых телефонах

1 - Android 2.3.3 - Samsung Galaxy Ace

Изображение

2 - Android 4.2 - RugGear RG310

Изображение

3 - Android (Mocor) 4.4.4 - Joy's S15

Изображение

4 - Android 9 - Soyes XS13

Изображение

5 - Android 12 - Xiaomi Duoqin F22 Pro

Изображение

6 - Android 15 - Xiaomi Redmi Turbo 3 (Poco F6)

Изображение

7 - Java 2 Microedition - Nokia N90

Изображение

Окно нормально отображается на всех телефонах.

Аватара пользователя
blackstrip
Админ
Сообщения: 1277
Зарегистрирован: Ср янв 02, 2008 1:42 pm
Откуда: Подольск
Контактная информация:

Re: PaintCAD Mobile - журнал разработки

Сообщение blackstrip » Ср авг 20, 2025 7:50 pm

Следующее окошко Explorer:

Изображение

Ревизия окна Explorer

Когда-то давно для загрузки или сохранения файла надо было вводить путь и имя файла в текстовое поле. Например, для сименсов, "c:\Pictures\a.bmp". Потом в опциях окна с текстовым полем был сделан вызов файлового менеджера командой "Обзор...". Окно Explorer - файловый менеджер, позволяет выбрать один из файлов для сохранения или загрузки, или просто выбрать папку для сохранения/загрузки, а имя файла уже потом дописать вручную в текстовом поле. Также можно в нем создавать папки, удалять и переименовывать папки и файлы, предпросматривать файлы (картинки/шрифты) по клавише "1" перед загрузкой. В этом окне на виртуальной клавиатуре под андроидом появляется дополнительная кнопка "..." чтобы вызвать меню и управлять окошком (т.к. не во всех андроид-телефонах есть физическая кнопка "меню").

В последней beta-версии оно было таким (режим списка файлов и режим предпросмотра одного из файлов по кнопке "1"):

Изображение

Изображение

Сначала просто добавляем масштабирование окошка, шрифтов, списка файлов, строчки сдвигаем на необходимое количество виртуальных пикселей, линии вокруг рисунка в предпросмотре делаем толщиной с виртуальный пиксель, ну и смотрим что будет. Значки тут теперь расширяются в соответствии с размерами экрана (в два раза, если еще маленькие - снова в два раза, если опять маленькие - снова в два раза и т.д., до размера сравнимого со шрифтом списка файлов):

Изображение

Изображение

Проблема 1 - Тень выбранного пункта вылезает на окантовку выбранного пункта

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

Изображение

Регион вывода большой, если будем дополнительно в нем рисовать - то ничего не помешает, можно его не трогать.

Для выделенного пункта отдельно выводится градиент на фоне пункта плюс рамка. Потом "тень" текста и она тоже обрезается для всего меню как на скрине выше.

Будем рисовать рамку не в начале отрисовки, а уже после вывода тени. И тогда тень не будет на рамку вылезать. Получилось вот это для меню со значками и меню без значков (например, в системе помощи, непрошедшего ревизию окошка, но список для вывода помощи в нем используется как раз беззначковый):

Изображение

Изображение

Проверим теперь как это выглядит на Nokia N90 с ее странными шрифтами, задранными вверх:

Беззначковый список:

Изображение

Список со значками:

Изображение

Рисуется вполне нормально, хоть шрифты и задраны вверх - тени-то всегда ниже, поэтому они даже не пытаются вылезать на рамку выделенного пункта. Список дисков видно. Но внутрь любого диска залезаем, разрешаем паинткаду по запросу нокии доступ к файлам - показывает окно вообще без списка. Видимо, фатальная ошибка. Пытался давно разобраться. Не помню к какому выводу пришел. Может какие лишние слэши в пути. Сименс плевал на кривые пути, пытался привести к нормальным. А Нокия, может, ответственно пытается по ним залезть и спотыкается. Это было давно известно, на нокиях доступ к списку файлов по JSR 75 не на всех точно работал. Пришло время посмотреть почему оно так происходит. И, может, даже починить.

Проблема 2 - Доступ к файлам на Nokia N90 через JSR 75

Отладка показала что в момент запроса списка файлов у FileConnection из текущей папки вылетает исключение с длинным текстом. Выкидывание его в окно ввода имени файла дало прочитать текст исключения целиком:

Изображение

Как раз до этого, когда смотрел в дипсике как правильно получать список файлов в папке на нокиях, он предупреждал что надо в манифест бы добавить разрешения:

Код: Выделить всё

MIDlet-1: FileList, , FileListMIDlet
MIDlet-Version: 1.0
MIDlet-Vendor: Your Company
MicroEdition-Configuration: CLDC-1.1
MicroEdition-Profile: MIDP-2.0
MIDlet-Permissions: javax.microedition.io.Connector.file.read,
                   javax.microedition.io.Connector.file.write
Хотя вот Nokia 7900 Prism, вроде бы, и так по файлам лазила (если правильно помню). Достаточно было нажать в окошке Explorer при доступе к файлам "Разрешить" и всё. Ну ладно, добавим эти разрешения в манифест.

После добавления разрешений (отдельного на запись, или обоих - на чтение и на запись) ничего не изменилось - то же исключение. Удаление приложения и повторная переустановка - ничего не поменялось, исключение такое же. И именно на write.

Оказалось, все проще. Убираем вообще из манифеста добавленные MIDlet-Permissions (наверное, они работают только если мидлет подписан сертификатом, но это не наш случай). Надо было просто в настройках приложения разрешить запрос на запись данных.

Изображение

Изображение

Изображение

Изображение

Изображение

Вот этот пункт "Изменение данных" стоит на "Запрещен". Непонятно почему при запросе списка файлов нужно не только чтение, но и запись) Но вот поэтому ява и не дает паинткаду получить этот список, а выкидывает вместо этого исключение про write.

В Нокиях для несертифицированных приложений нет варианта "Разрешать на всю сессию" как в Сименсах. Но есть "Запрос всегда". Выбираем его.

Кстати, этот пункт ВСЕГДА СБРАСЫВАЕТСЯ в состояние "Запрещен" при переустановке приложения (установке новой версии поверх старой).

Изображение

Изображение

И после этого в самом паинткаде при вызове "Обзора" вылезают по очереди два запроса (а не один, как было раньше в нокии). Первый на чтение:

Изображение

Второй на запись:

Изображение

И список файлов и папок появляется в окошке. И на телефоне "C:", и на карте памяти "E:" :

Изображение

Изображение

Попробуем сохранить картинку в файл и посмотреть лежит ли она на диске:

Изображение

Изображение

Да, она сохраняется.

Чтоб не было больше окошка Explorer с отсутствующим списком файлов - добавлена обработка исключения с выдачей, в этом случае, пустого списка файлов.

Проблема 3 - Бесконечные запросы на чтение и запись файлов при предпросмотре по кнопкам "1", "3" или "7"

Проверил предпросмотр в окошке Explorer по кнопке "1". Оказалось, что запрос на чтение/запись на нокии после своего пропадания с экрана инициирует перерисовку экрана. А в режиме предпросмотра по "1" файл считывается и показывается на экран при каждой перерисовке (обычно там идут перерисовки, например, при выборе следующего файла, и не ожидалось что кто-то еще будет вызывать перерисовку кроме самого паинткада) - поэтому на нокии идут бесконечные запросы на чтение и запись, просмотреть ничего невозможно, и прекратить эти бесконечные запросы нельзя.

Поправим это. Сделаем флажок, который означает что перерисовку экрана вызвал сам паинткад. И при всех режимах предпросмотра (а тут их аж 3 штуки - по кнопке "1" предпросмотр выбранного файла, по кнопке "3" предпросмотр GIF-кадров будущей анимации от 1.gif и далее, по кнопке "7" предпросмотр BMP-символов будущего PCF-шрифта от 32.bmp и далее, хотя можно и в обратку крутить 31.bmp, 30.bmp, если делаем символьный шрифт, а не текстовый) будем загружать файл и показывать только если паинткад вызвал перерисовку.

Сделаем тестовый набор файлов:
1) пара файлов t.bmp, t2.bmp для простого предпросмотра по "1";
2) пара файлов 1.gif, 2.gif для предпросмотра кадров анимации по "3";
3) пара файлов 32.bmp, 33.bmp для предпросмотра BMP-изображений символов по "7".

Часть файлов (кадры анимации и изображения символов) сделаем большими, с экран. Чтоб убедиться что окошко "разрешить чтение?", "разрешить запись?" после пропадания не оставляет после себя пустое место на экране (мало ли).

Изображение

В итоге - все работает.

Показывается на Нокии N90 без бесконечных запросов чтения/записи предпросмотр и картинок по "1":

Изображение

и для PCF-шрифтов по этой же "1":

Изображение

и кадров анимации по "3":

Изображение

и символов шрифта по "7" (т.е. BMP-картинок с именами 1.bmp - 255.bmp):

Изображение

Теперь проверим это же на андроиде (а то вдруг на нокии починилось, а на андроиде сломалось).

Нет, здесь тоже все работает. Предпросмотр картинок по "1":

Изображение

и PCF-шрифтов по "1":

Изображение

и кадров анимации по "3":

Изображение

и символов шрифта по "7" (т.е. BMP-картинок с именами 1.bmp - 255.bmp):

Изображение

Проблема 4 - Предпросмотр по клавишам "1", "3", "7" дает слишком мелкие картинки на больших экранах

Предпросмотр мелкой картинки по "1" на FullHD экране дает мелкое изображение, ничего не видно вообще. Аналогичная проблема если рисуешь растровый шрифт с небольшими буквами:

Изображение

Масштабировать саму картинку будем кратно - увеличивать в 2 раза по ширине и высоте размеры если она маленькая или, наоборот, уменьшать в 2 раза по ширине и высоте размеры если она большая. Повторять это до тех, пока рассчитанный размер не достигнет размеров экрана, а потом масштабировать до этого размера и выводить на экран.

Т.к. кнопки "1", "3", "7" заняты предпросмотром файлов, GIF-кадров и символов шрифта, то назначим эту функцию на кнопку "9". Один раз жмем "9" - масштабирование включается, еще раз жмем "9" - масштабирование отключается.

Справа от имени файла выведем дополнительный значок "стрелки во все стороны" - это значит режим масштабирования включен и все предпросматриваемые картинки кратно растягиваются/ужимаются до размеров экрана.

Получаем:

Изображение

Информация (имя файла, значок, номер символа шрифта, изображение символа шрифта) иногда мешает увидеть масштабированное изображение полностью. Поэтому на кнопку "звездочка" назначим отключение/включение вывода информации.

При отключенной информации получаем:

Изображение

Теперь проверим по "3" просмотр кадров GIF-анимации:

Без масштабирования:

Изображение

С масштабированием по "9":

Изображение

С масштабированием по "9" и отключенной информацией по "*":

Изображение

Теперь проверим по "7" просмотр BMP-символов мелкого шрифта:

Без масштабирования:

Изображение

С масштабированием по "9":

Изображение

С масштабированием по "9" и отключенной информацией по "*":

Изображение

И последнее - проверим по "1" просмотр PCF-шрифта. Паинткад подгружает выбранный шрифт и пишем им тестовый образец - английские и русские большие и маленькие буквы и цифры:

Без масштабирования:

Изображение

С масштабированием по "9":

Изображение

С масштабированием по "9" и отключенной информацией по "*":

Изображение

Все режимы работают. Теперь предпросматриваемые картинки в окне Explorer могут быть отмасштабированы до размеров экрана по кнопке "9" и также можно скрыть информацию о файле по кнопке "звездочка"

Проверка окна Explorer на тестовых телефонах

Проверим:
1) режим списка файлов;
2) режим предпросмотра картинки по "1" с масштабированием по "9";
3) режим предпросмотра шрифта по "1" с масштабированием по "9".

1 - Android 2.3.3 - Samsung Galaxy Ace

Изображение

Изображение

Изображение

2 - Android 4.2 - RugGear RG310

Изображение

Изображение

Изображение

3 - Android (Mocor) 4.4.4 - Joy's S15

Изображение

Изображение

Изображение

4 - Android 9 - Soyes XS13

Изображение

Изображение

Изображение

5 - Android 12 - Xiaomi Duoqin F22 Pro

Изображение

Изображение

Изображение

6 - Android 15 - Xiaomi Redmi Turbo 3 (Poco F6)

Изображение

Изображение

Изображение

7 - Java 2 Microedition - Nokia N90

Изображение

Изображение

Изображение

На всех тестовых телефонах окошко Explorer нормально отображает список файлов и масштабированный предпросмотр рисунка и шрифта.

Аватара пользователя
blackstrip
Админ
Сообщения: 1277
Зарегистрирован: Ср янв 02, 2008 1:42 pm
Откуда: Подольск
Контактная информация:

Re: PaintCAD Mobile - журнал разработки

Сообщение blackstrip » Вс авг 31, 2025 12:26 pm

Следующие модули: ExtImage - для работы с чернобелыми картинками (прокладка на ExtendedImage для сименса и обычного цветного Image для других телефонов), File - для работы с файлами (прокладка на работу с файловыми системами сименса и JSR-75). В них нет интерфейса и масштабировать их не нужно

Следующее окошко FontBrowser:

Изображение

Ревизия окна FontBrowser

Вызывается по "0" - "Шрифты" - "Обзор шрифта". Можно просматривать изображения символов с 32 по 255 текущего загруженного растрового PCF-шрифта. И можно выбрать один из символов и вставить его на рисунок. Однократное нажатие "джой влево/вправо"/4-6 переключает по одному символу вперед/назад. Долгое удерживание "джой влево/вправо"/4-6 прыгает сразу на 5 символов вперед/назад.

В последней beta-версии оно было таким:

Изображение

И когда символа в шрифте не было - оно просто рисовало символ шириной 0 пикселей:

Изображение

Сначала просто включаем масштабирование элементов. Получаем окошко с символом в ярко-красной жирной рамке (толщиной один виртуальный пиксель) на непонятном отдалении от краев окна и заголовка:

Изображение

Ставим изображение полевей и повыше. Окантовку цветом как окантовка рисунка на главной форме (светло-синеватый).

Добавим масштабирование изображения символа (а то его совсем не видно) на незанятую среднюю софт-клавишу (джойстик). Поставим туда вниз окна символ масштабирования из окошка Explorer вместо текста "Масштаб"/"Зум"/"Лупа" или чего-то подобного (а то на мелкоэкранных телефонах три длинных текста может не влезть на подписи софт-клавиш). Нажатием джойстика масштабирование включаем/выключаем. Масштаб рассчитаем исходя из высоты шрифта и ширины самой большой по горизонтали буквы в шрифте, чтобы гарантированно все символы показывались в одинаковом масштабе и при этом гарантированно все влезали в экран (вылезут за экран только если экран ооочень мелкий и даже при масштабе х1 изображение символа не влезет в экран).

Получилось вот такое окно:

Изображение

Если символ будет отсутствовать - то будем выводить надпись об этом, а правую софт-клавишу - блокировать и рисовать неактивную подпись для нее (нечего вставлять, т.к. символа нет):

Изображение

Проверка окна FontBrowser на тестовых телефонах

Проверять будем на английской букве "A" с включенным масштабированием

1 - Android 2.3.3 - Samsung Galaxy Ace

Изображение

2 - Android 4.2 - RugGear RG310

Изображение

3 - Android (Mocor) 4.4.4 - Joy's S15

Изображение

Значок "масштабирование" самый мелкий - размером 16х16 пикселей. Поэтому если шрифт меньше, то значок улезает вниз (чтоб не торчать из панели с подписями софт-кнопок). Нарисуем еще это вариант 8x8 пикселей, для таких маленьких экранов и маленьких по высоте шрифтов.

Получаем это же окошко с новым мелким значком:

Изображение

4 - Android 9 - Soyes XS13

Изображение

5 - Android 12 - Xiaomi Duoqin F22 Pro

Изображение

6 - Android 15 - Xiaomi Redmi Turbo 3 (Poco F6)

Изображение

7 - Java 2 Microedition - Nokia N90

Изображение

На всех тестовых телефонах всё ок.

Аватара пользователя
blackstrip
Админ
Сообщения: 1277
Зарегистрирован: Ср янв 02, 2008 1:42 pm
Откуда: Подольск
Контактная информация:

Re: PaintCAD Mobile - журнал разработки

Сообщение blackstrip » Вт сен 02, 2025 10:02 pm

Следующий модуль: FontView - заготовка окна под расширенный редактор/подготовщик шрифтов, видимо. Не используется в данный момент. Пустое окошко, масштабировать его не нужно.

Следующее окошко Gallery:

Изображение

Ревизия окна Gallery

Вызывается по "0" - "Справка" - "Галерея PC". Предлагает кинуть нарисованную картинку на почту вместе с именем автора и названием картинки чтоб она появилась в галерее паинткада http://pg.blackstrip.ru.

В последней beta-версии оно было таким:

Изображение

Изображение

Изображение

Включаем масштабирование. Сделаем в андроиде ссылки кликабельными: клик на почту открывает почтовый клиент (по ссылке "mailto:адрес"), клик на ссылку галереи открывает русскоязычную галерею http://pg.blackstrip.ru/?lang=ru при русском языке интерфейса паинткада и англоязычную галерею http://pg.blackstrip.ru/?lang=en при английском. Яркие окантовки сделаем побледней, черный шрифт внутри них - посветлей, поближе к цвету окантовок. В яве будут видны все три окантовки в трех последовательно показывающихся окошках, т.к. ссылки не будут кликабельны. А в андроиде: ссылка, окантовка, ссылка. Получилось:

Изображение

Изображение

Изображение

Проверка окна Gallery на тестовых телефонах

1 - Android 2.3.3 - Samsung Galaxy Ace

Изображение

Изображение

Изображение

2 - Android 4.2 - RugGear RG310

Изображение

Изображение

Изображение

3 - Android (Mocor) 4.4.4 - Joy's S15

Изображение

Изображение

Изображение

4 - Android 9 - Soyes XS13

Изображение

Изображение

Изображение

5 - Android 12 - Xiaomi Duoqin F22 Pro

Изображение

Изображение

Изображение

6 - Android 15 - Xiaomi Redmi Turbo 3 (Poco F6)

Изображение

Изображение

Изображение

7 - Java 2 Microedition - Nokia N90

На яве вместо ссылок отображаются просто раскрашенные тексты электронной почты и веб-адреса галереи:

Изображение

Изображение

Изображение

Окно Gallery на всех телефонах отображается нормально.

Аватара пользователя
blackstrip
Админ
Сообщения: 1277
Зарегистрирован: Ср янв 02, 2008 1:42 pm
Откуда: Подольск
Контактная информация:

Re: PaintCAD Mobile - журнал разработки

Сообщение blackstrip » Сб сен 06, 2025 11:29 am

Следующее окно Gate:

Изображение

Ревизия окна Gate

Через этот модуль проходят все загружаемые/сохраняемые файлы, превращаясь из файла в массив цветных точек или, наоборот, из массива цветных точек в файл. Это окно показывает ход процесса (полосу прогресса с пояснениями) при загрузке/сохранении различных форматов файлов, а также при подгрузке картинки из jpg-файла, снятого камерой.

В последней beta-версии оно было таким:

Изображение

Масштабируем окошко, значок, надписи, полосу прогресса сдвигаем на нужное количество виртуальных пикселей вместо реальных. Вроде бы больше тут масштабировать нечего. Получилось:

Изображение

Масштабировщик изображений увеличивает значок, придавая ему наркоманскую стилистику коллекции изображений из майкрософт ворда 1997 года =) Вообще-то иконка с дискетой, приходящая масштабировщику на вход, выглядит вот так:

Изображение

Проверка окна Gate на тестовых телефонах

1 - Android 2.3.3 - Samsung Galaxy Ace

Изображение

2 - Android 4.2 - RugGear RG310

Изображение

3 - Android (Mocor) 4.4.4 - Joy's S15

Изображение

4 - Android 9 - Soyes XS13

Изображение

5 - Android 12 - Xiaomi Duoqin F22 Pro

Изображение

6 - Android 15 - Xiaomi Redmi Turbo 3 (Poco F6)

Изображение

7 - Java 2 Microedition - Nokia N90

Изображение

Окно Gate тоже отлично рисуется на всех тестовых телефонах

Аватара пользователя
blackstrip
Админ
Сообщения: 1277
Зарегистрирован: Ср янв 02, 2008 1:42 pm
Откуда: Подольск
Контактная информация:

Re: PaintCAD Mobile - журнал разработки

Сообщение blackstrip » Сб сен 06, 2025 10:48 pm

Выравниваем по вертикали шрифты у Nokia N90

Как было показано здесь ../phpBB2/viewtopic.php?f=4&t=110&p=3546#p3546 - у нокии N90 шрифты, рисуемые с опорой от верхней точки, сдвинуты вверх и очень сильно:

Изображение

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

Более универсальное решение

Но можно и сдвинуть чтоб они были по центру строки - нужно только знать на сколько пикселей. Для этого надо, например, нарисовать одну букву и "посмотреть" программно где у нее верх и низ.

Выберем букву "B" английскую большую (хочется чтоб заглавные буквы были бы по вертикали ровно по центру строки, и у буквы B обычно ровные плоские верх и низ) и попиксельно отследим где она начинается и где кончается.

Нарисуем букву черным на белом фоне. Отслеженные верх tmin = 0 пикселей и низ tmax = 15 пикселей буквы пометим красными линиями. По ним видно насколько она сдвинута относительно белого фона высотой 26 пикселей.

Центр буквы пометим зеленой линией. И посчитаем насколько буква сдвинута от вертикального центра фона - это аж 5 пикселей вверх (т.е. -5).

Синей линией отметим где должна быть середина буквы по вертикали с учетом рассчитанного сдвига. И попробуем нарисуем справа такую же букву, но с рассчитанным сдвигом 5 пикселей в обратную сторону (вниз). Буква справа встает ровно по центру фона левой буквы:

Изображение

Т.е. один раз посчитать при старте, запомнить и сдвигать все строки на это количество пикселей.

Попробуем это же на андроиде. Андроид посчитал что на 2 пикселя вверх надо сдвинуть - ну пусть, так будет поровней (на скриншоте цвета черный и белый - отличные, 0,0,0 и 255,255,255, но вот красная линяя темновата, синяя линяя слишком темная, а зеленая - бледно-зеленая, и хоть скриншот в JPG (он мог бы пережать тонкие яркие линии в бледные) - но на экране смартфона видно то же самое, странно, ну да ладно, какая-то оптимизация тонких линий при отрисовке, или кривой формат пикселя, не ARGB8888, или оптимизация при выводе на экран - типа уклона в какие-то мягкие оттенки чтоб глаза не уставали, непонятно):

Изображение

Теперь все это надо посчитать еще для толстого шрифта (у него могут быть другие сдвиги).

Толстый мелкий шрифт на нокии - смещение уже не -5, а только -4:

Изображение

Толстый мелкий шрифт на андроиде - все те же +2:

Изображение

В паинткаде помимо мелкого шрифта используется еще крупный (LARGE). Для него тоже надо вертикальные смещения посчитать, записать и применять для большого нежирного и большого жирного шрифта.

Для большого нежирного шрифта на нокии - уже смещение -7:

Изображение

Для большого нежирного шрифта на андроиде - все те же +2:

Изображение

Для большого жирного шрифта на нокии - уже смещение -6 (т.е. на нокии все шрифты по смещениям разные, и смещения зависят от жирности шрифта и для мелкого, и для большого. И этот расчет все их сдвинет на середину):

Изображение

Для большого жирного шрифта на андроиде - опять +2:

Изображение

В общем, сохраняем 4 смещения: для мелкого нежирного шрифта, мелкого жирного, большого нежирного, большого жирного при точке опоры сверху. И смотрим что стало со шрифтами интерфейса, они все должны встать ровно на нокии, и не уехать далеко на андроиде =)

Уехало ли все на андроиде? Окошко Explorer со списком файлов было раньше:

Изображение

Стало теперь (должно быть со сдвигом текстов на 2 пикселя вверх):

Изображение

Наложим красный канал от того что было на синий+зеленый от того что стало - увидим сдвиги:

Изображение

Поближе посмотрим - на сглаженных шрифтах с трудом, но видно что действительно сдвиг в 1-2 пикселя есть:

Изображение

Теперь посмотрим на Nokia N90:

Была отрисовка шрифтов в окне Explorer с папкой E:/:

Изображение

Стала отрисовка шрифтов в окне Explorer с папкой E:/:

Изображение

И в заголовке (жирный мелкий шрифт), и в списке (нежирный мелкий шрифт) все печатается ровно по центру строк. Теперь шрифты интерфейса лежат по вертикале посередине строк и на Андроиде, и на Нокии.

Еще одна проверка - на окошке CurType (Тип курсора), там много всяких элементов на окне и шрифтов на них и рядом с ними:

Было окошко CurType:

Изображение

Стало окошко CurType:

Изображение

В нем тоже все шрифты теперь ровно лежат на компонентах. Всё отлично выравнивается.

Осталось это проверить на всех тестовых телефонах на андроиде (мало ли какой андроид чудит с новым алгоритмом отслеживания смещения символа в строке).

Проверка автовыставления шрифтов по вертикали на остальных тестовых телефонах

1 - Android 2.3.3 - Samsung Galaxy Ace

Изображение

2 - Android 4.2 - RugGear RG310

Изображение

3 - Android (Mocor) 4.4.4 - Joy's S15

Изображение

4 - Android 9 - Soyes XS13

Изображение

5 - Android 12 - Xiaomi Duoqin F22 Pro

Изображение

Все тестовые андроиды успешно центрируют текст по вертикали. Теперь окошки на нокии будут с ровно расположенными шрифтами. И на андроиде тоже.

Аватара пользователя
blackstrip
Админ
Сообщения: 1277
Зарегистрирован: Ср янв 02, 2008 1:42 pm
Откуда: Подольск
Контактная информация:

Re: PaintCAD Mobile - журнал разработки

Сообщение blackstrip » Вс сен 07, 2025 5:44 pm

Следующее окно Getco:

Изображение

Ревизия окна Getco

Getco - от слов "get color", используется чтобы указать (выбрать) цвет с любого пикселя на рисунке. Например, для эффекта "Градиент" можно выбрать в запросе о месте заливки "Указать цвет", выбрать цвет с любого пикселя рисунка в окне Getco и тогда градиент будет залит только на пиксели выбранного цвета.

В последней beta-версии оно было таким (зальем рисунок эффектом "Адский огонь" из "Доп.эффектов" чтоб было много разных цветов и посмотрим как интерфейс выделяется/не выделяется на фоне такого испещренного графикой рисунка):

Изображение

Черный текст дополняется серыми тенями и при темном или при светлом рисунке текст было видно. Сама ячейка выбранного цвета обрисовывается пунктиром.

Если текст мешает выбрать цвет, то по кнопке "Поднять трубку" (зеленая кнопка на виртуальной андроид-клавиатуре) можно выключить или включить обратно показ интерфейса (строк, выбранного цвета, подписи к правой софт-клавише), и тогда на экране будет только рисунок и курсор на нем.

Т.к. курсор на фоне многоцветного рисунка (типа этого на скриншоте) заметить трудно, то давно была введена функция показа текущей позиции курсора. Если нажать # - вокруг курсора нарисуется маркер - три разноцветных квадрата и станет понятно где он находится. Если сдвинуть курсор хотя бы на один пиксель - маркер пропадет. Вот этот маркер, в белом кружке:

Изображение

Добавим масштабирование. Шрифты и тени, отстающие на один виртуальный пиксель, толстый пунктир.

Изображение

И появляющиеся по нажатию # разноцветные квадраты маркера сделаем толщиной 1 виртуальный пиксель. Вот теперь его видно.

Изображение

Но на больших экранах остается одна проблема.

Проблема 1 - При большом разрешении экрана не видно на каких пикселях стоит курсор

Чтобы доехать курсором до нужного цвета пикселя и выбрать его - обычно приходится наугад докатить курсор примерно в нужную область картинки, а дальше двигать курсор попиксельно и тыкать кнопку "5" пока не поймаешь нужный цвет.

Нужно масштабирование всего рисунка или хотя бы его части около курсора.

В PaintCAD 4Windows есть такая функция как "Лупа 11x11", область размером 11x11 пикселей, в которой большими пикселями нарисовано что находится вокруг курсора сейчас. По ней даже без увеличения рисунка можно увидеть где курсор:

Изображение

Такую же сделать бы в окне getco.

Пусть она включается по кнопке "*" (звездочка). Эта кнопка никакой другой функцией не занята в этом окошке.

Сделаем размер этой "лупы" тоже 11x11 пикселей рисунка, ячейки размером 4x4 виртуальных пикселя (чтоб уж точно было ее видно). Наложим сверху полупрозрачную черную сетку толщиной 1 виртуальный пиксель. В середину вставим рамку курсора как в PaintCAD 4Windows.

Над областью будем показывать координаты курсора (а то в этом окне они вообще не показываются, ведь мы выбираем цвет просто прикатывая курсор в нужное место). По кнопке "Поднять трубку" будем скрывать и верхний текст интерфейса с ячейкой выбранного цвета, и координаты над "лупой".

При включенной "лупе" не будем рисовать мелкий курсор, а будем рисовать гигантскую крестовину из прерывистой черно-белой линии прямо поверх рисунка. Центр крестовины - позиция курсора.

Получилось вот так:

Изображение

Если подъехать курсором к краю рисунка - в лупе будем рисовать пустые пиксели как в PaintCAD 4Windows:

Изображение

Проблема решена. Теперь на большом экране с мелкими пикселями точно будет понятно где сейчас курсор и какую часть рисунка мы видим на "лупе".

Проверим теперь эту "лупу" на всех тестовых телефонах.

Проверка окна Getco на тестовых телефонах

1 - Android 2.3.3 - Samsung Galaxy Ace

Изображение

2 - Android 4.2 - RugGear RG310

Изображение

3 - Android (Mocor) 4.4.4 - Joy's S15

Изображение

На таком мелком экране сглаженный шрифт местами сливается с картинкой. Но разглядеть можно.

Если пользователи такого мелкого экрана включат в настройках Шрифт окон, тогда получится уже почетче:

Изображение

4 - Android 9 - Soyes XS13

Изображение

5 - Android 12 - Xiaomi Duoqin F22 Pro

Изображение

6 - Android 15 - Xiaomi Redmi Turbo 3 (Poco F6)

Изображение

7 - Java 2 Microedition - Nokia N90

Изображение

На нокии подлагивает здорово когда рисует увеличенную область и крестовину еще. Но это все всегда можно выключить нажав "*" еще раз.

В общем, на всех телефонах окно Getco работает сносно.

Аватара пользователя
blackstrip
Админ
Сообщения: 1277
Зарегистрирован: Ср янв 02, 2008 1:42 pm
Откуда: Подольск
Контактная информация:

Re: PaintCAD Mobile - журнал разработки

Сообщение blackstrip » Пт сен 12, 2025 7:06 pm

Добавляем область увеличения 11x11 пикселей в окно AddText

Окно AddText уже было масштабировано ( ../phpBB2/viewtopic.php?f=4&t=110&p=3521#p3521 ).

Но там бы тоже не помешала бы область увеличения и крестовина.

Окно AddText используется при добавлении текста на рисунок инструментом "Текст". Туда добавим область увеличения и крестовину. Координаты над областью выключим, т.к. в этом окне и так выводятся координаты в правой стороне экрана. Также при включенном режиме увеличения выключим отображение подписи левой софтклавиши ("Отмена"), т.к. область увеличения будет размещаться поверх нее и на некоторых экранах и при некоторых шрифтах кусок надписи может торчать из под области увеличения и пугать пользователей.

Еще окно AddText используется при разборке мобильного шрифта на буквы ("0" - "Шрифты" - "Разбор МобШрифта"). Там в нем просто выбирается стиль шрифта, который будем разбирать на BMP-буквы (чтоб потом собрать из них PCF-шрифт и писать им на любом другом мобильнике, даже другой фирмы). Фон окна тогда просто заливается белым цветом, никакого позиционирования текста на картинке не происходит и поэтому область увеличения и крестовина не нужны.

Вот как теперь выглядит добавление текста инструментом "Текст" с включенной по кнопке "*" областью увеличения и крестовиной:

Изображение

И примерно так же при вставке инструментом "Текст" загруженного заранее в память PCF-шрифта:

Изображение

Но обозрев всё сделанное по масштабированию в этой паре окон Getco и AddText - стало ясно, что многого не хватает. "Всю систему надо менять" как в том анекдоте.

Добавляем еще один телефон в Тестовые телефоны

Эта Nokia 7900 Prism хранилась отдельно от аккумулятора, ничего не надулось даже. Зарядил и работает. У нее забавные, другие шрифты, не как у Nokia N90. И на ней хорошо работает PaintCAD. Можно и тестировать и на ней (две разных нокии с разными шрифтами лучше одной).

Тестовый телефон 8 - Nokia 7900 Prism
Экран 240 х 320 пикселей, не сенсорный
Java

Изображение

Аватара пользователя
blackstrip
Админ
Сообщения: 1277
Зарегистрирован: Ср янв 02, 2008 1:42 pm
Откуда: Подольск
Контактная информация:

Re: PaintCAD Mobile - журнал разработки

Сообщение blackstrip » Сб сен 13, 2025 9:45 pm

Метки и область выделения в главном окне рисования, Getco, AddText и подобных окнах

В PaintCAD 4Windows "Лупа 11x11" умеет отображать метки (которые ставятся в меню "Меню команд" (Джой вправо) - "Метки") - рисуемые поверх рисунка отметки, чтобы ориентироваться при рисовании на них (например, расставлять по прямой какие-то объекты, отступать N пикселей от метки, равнять верх и низ буквы рисуемого шрифта относительно границ изображения букв и др.):

Изображение

Надо сделать чтобы и в PaintCAD Mobile метки отображались в области увеличения. А также отображались бы на неувеличенном рисунке на фоне. И без включенной по "*" они были бы толщиной 1 пиксель, а с включенной - 1 виртуальный (большой) пиксель.

Плюс к тому PaintCAD 4Windows умеет отображать область выделения прямо на рисунке. Вот как выглядит в PaintCAD 4Windows черный рисунок с выделением и метками:

Изображение

Надо сделать чтоб и PaintCAD Mobile показывал текущую область выделения прямо на рисунке, а не просто показывал в главном окне снизу индикатор: зеленый когда курсор в области выделения и красный когда курсор вне ее.

И эту же область выделения, как и метки, надо показывать в этих всех окошках толщиной 1 обычный пиксель с выключенной областью увеличения, и толщиной 1 виртуальный (большой) пиксель с включенной областью.

Вот сколько всего надо сделать =) Тогда везде всё будет видно, а при включенной по "*" области увеличения - еще сильнее видно, что легко будет на телефонах с большими разрешениями экрана размещать тексты на рисунке, выбирать цвет, вставлять картинки из буфера на рисунок и т.д., ориентируясь автоматически по выделенному фрагменту рисунка и по расставленным меткам, разглядывая их как на рисунке на фоне, так и в области увеличения.

Метки

В отличие от PaintCAD 4Windows в PaintCAD Mobile всего три вида меток - горизонтальная линия, вертикальная линия и крестовая метка.(горизонтальная + вертикальная линии). Рисуются они на экране чередующимися зелеными и фиолетовыми полосками (цвета у меток как в PaintCAD 4Windows):

Изображение

Вертикальная метка вообще рисуется с каким-то багом - зеленая составляющая уезжает вбок:

Изображение

Баг исправлен) Теперь вертикальная будет рисоваться как положено.

Метки и область выделения в главном окне

В главном окне вместо толстой линии метки - будем рисовать:
1) на масштабе x1 - просто линию из чередующихся точек, как раньше. Сине-желтую для выделения, фиолетово-зеленую для меток. Эти цвета противоположные - синий (0,0,255) и желтый (255,255,0) - если чередуются, то будут видны на фоне любого цвета. Фиолетовый и зеленый - тоже противоположные - фиолетовый (255,0,255) и зеленый (0,255,0).

Добавим на рисунок выделение подальше от краев и все метки - горизонтальную, вертикальную и крестовую (горизонтальную+вертикальную). На масштабе x1 на разных фонах должно быть видно:

Изображение Изображение

2) При росте масштаба до x2 и более - можно рисовать уже несколько вписанных пунктирных линий разных цветов, через "дырки" в линиях будут видны цвета пикселей на картинке. Поделим масштаб на 3, это будет толщина одной цветной линии (разумеется, она не должна быть меньше 1 реального пикселя), и будем пытаться врисовать в границу области выделения или метку минимум три пунктирные линии (например, синюю, желтую, синюю).

На масштабе x2, т.к. линия каждого цвета не меньше одного пикселя - то рисуется только пара линий, чередуя цвет:

Изображение

На масштабе x3 рисуются три линии, чередуя цвет:

Изображение

На масштабе x4 ширина линии равна 4/3=1.3333=1. Поэтому рисуются четыре линии толщиной 1 пиксель:

Изображение

На масштабе x5 ширина линии равна 5/3=1.6666=1. Поэтому рисуются пять линий толщиной 1 пиксель:

Изображение

На масштабе x6 ширина линии равна 6/3=2. Поэтому рисуются три линии толщиной 2 пикселя:

Изображение

Толщина линии еще сравнивается с размером виртуального пикселя. На этих скриншотах использовался эмулятор андроида с мелким экраном типа 320х480, размер виртуального пикселя равен 2. Поэтому линии не будут далее утолщаться, а останутся толщиной 2 пикселя. Например, на масштабе x12 рисуются 6 линий с чередующимися цветами:

Изображение

Попробуем теперь эти метки и область выделения на другом телефоне, с экраном побольше.

Фото издалека - мини-выделение и три вида меток толщиной 1 пиксель:

Изображение

Масштаб x15, ровно три линии по 5 пикселей влезают:

Изображение

Для сравнения - метки в предыдущей бете - на сером фоне не особо и видны, т.к. множественные мелкие фиолетовые и зеленые линии при таких мелких точках на экране просто сливаются в цвет (255,0,255+0,255,0)/2 = 127,127,127, т.е. серый

Изображение

Масштаб x14. Толщина линии 14/3 = 4.666 = 4 пикселя. Влезают 14/4 = 3 с половиной линии. Так и рисуется - три полных линии и половинка.

Изображение

Через все линии (и выделения, и метки) видны пиксели картинки. При этом они рисуются не накладыванием цветов (вычислять суммы цветов по RGB-каналам долго, это может вызвать лаги при отрисовке выделения и меток), а просто пунктирными линиями, у которых нет части пикселей, через них и видны пиксели картинки. Издалека кажется что линии полупрозрачные.

Скриншоты выше - это будет режим без "масштабирования". В окошках типа getco и других - как известно из предыдущих постов - будет режим "с масштабированием" когда линии меток и выделения будут не меньше 1 виртуального пикселя и будут хорошо видны даже при мелком масштабе.

Заодно максимальный масштаб в окне "Лупа" поднимем с 50 до 100, а то на экранах высокого разрешения увеличенный пиксель на картинке размером 50х50 пикселей - не такая и большая точка на сегодняшних смартфонах с экранами 2500x2000 пикселей.

На большом экране и таком большом масштабе x100 размер линии упирается в размер виртуального пикселя и больше не растет. При этом даже сквозь пересечения границы области выделения и метки - видны пиксели картинки. Например, пересечение выделения и метки сверху где черные пиксели под ним и такое пересечение где снизу белые пиксели под ним - отличаются по общему цвету:

Изображение

Отображение выделения на слабых телефонах может замедлить отрисовку главного окна и остальных окон. Поэтому сделаем дополнительную опцию "Показ выделения" настройках. Можно было бы назвать ее "Показать выделение", но на узких экранах такое длинное название может не влезть в экран) Поэтому "Показ выделения" / "Show selection":

Изображение

Изображение

На андроидах по умолчанию она будет включена. Но если ее выключить (на слабом медленном андроиде) и выйти из паинткада - то в настройках сохранится что она выключена и в следующий запуск она будет выключена.

С метками и выделением в главном окошке вроде бы всё. В этом окошке "масштабирование" рисунка, меток и выделения включается по "ДжойВправо" - "Лупа" и поэтому как бы уже давно сделано.

Теперь переходим к дополнительным окошкам типа getco, там надо будет все это же организовать на рисунке в масштабе x1 и в области масштабирования 11х11, причем при включенной области масштабирования рисовать жирными линиями и метки, и выделение, чтоб грубо ориентироваться издалека и точно подсматривать по области 11х11.

Аватара пользователя
blackstrip
Админ
Сообщения: 1277
Зарегистрирован: Ср янв 02, 2008 1:42 pm
Откуда: Подольск
Контактная информация:

Re: PaintCAD Mobile - журнал разработки

Сообщение blackstrip » Сб сен 20, 2025 12:45 am

Метки и область выделения в окне Getco

Закидываем метки и область выделения из прошлого поста в окно Getco.

Метки, область выделения и курсор без включенной по "*" области увеличения 11х11:

Изображение

Если посмотреть вблизи - все рисуется толщиной 1 пиксель: и метки, и область выделения. В правом нижнем углу области выделения "лишняя точка" - это так некоторые андроиды могут рисовать угол прямоугольника - с каким- то скруглением.

Изображение

Теперь включаем по "*" область увеличения 11х11. Тогда все линии - а это метки, область выделения, крестовина курсора - становятся размером с виртуальный пиксель (такой крупный пиксель, который точно будет видно на экране). На этом андроиде экран небольшой и поэтому виртуальный пиксель равен 2х2 реальных пикселя. И вот у нас толщиной 2 реальных пикселя метки, область выделения и толщиной 2 реальных пикселя крестовина вместо курсора (и опять круголя в правом нижнем углу прямоугольников, чудит старый андроид хоть рисуй прямоугольники четырьмя отдельными линиями):

Изображение

Вблизи это выглядит так:

Изображение

И в области выделения отображаются уже крупными линиями (размером с большой пиксель области 11х11) метки и границы области выделения.

Т.к. область увеличения 11х11, то хорошо бы знать - снаружи выделенного фрагмента мы или внутри него. Поэтому курсор в области 11х11 при выкатывании за пределы области выделения будет полупрозрачным (из пунктирных линий). А когда внутри нее - то сплошной и толстый. Вот он выкатился за пределы выделенной области:

Изображение

Внутри курсора в области 11х11 закрасим центр цветом, который под ним. Теперь внутри курсора видны не метки или границы области выделения (если он на них стоит), а всегда виден цвет пикселя под курсором:

Изображение

Теперь проверим как выглядит область 11х11 и вообще режим "прицеливания" по "*" в окне Getco на тестовых телефонах. Там виртуальный пиксель в зависимости от размеров экрана будет и 1х1, и огромный. Соответственно и линии меток и выделения будут разным образом выглядеть.

Проверка отрисовки меток и выделения в области 11х11 и на картинке в окне Getco на тестовых телефонах

1 - Android 2.3.3 - Samsung Galaxy Ace

Изображение

Изображение

Все по 2 пикселя, как в эмуляторе 2.3.3. И скругленный правый-нижний угол прямоугольника области выделения тоже как в эмуляторе)

2 - Android 4.2 - RugGear RG310

Изображение

Изображение

Тоже по 2 пикселя всё. И тоже скругленный правый-нижний угол прямоугольника выделения.

3 - Android (Mocor) 4.4.4 - Joy's S15

Изображение

Изображение

Изображение

Тут экран мелкий, виртуальный пиксель равен реальному. Скругленного угла прямоугольника выделения - нету =)

4 - Android 9 - Soyes XS13

Изображение

Изображение

Тоже мелкий экран, виртуальный пиксель 1х1. И тоже нет скругленного угла. Телефон фоткает повернутое фото, ну да ладно, для теста это не важно.

5 - Android 12 - Xiaomi Duoqin F22 Pro

Изображение

Изображение

Виртуальный пиксель 5x5 реальных. Скругленного угла нет, но есть дырка (где-то 1 пиксель) в правом нижнем углу.

6 - Android 15 - Xiaomi Redmi Turbo 3 (Poco F6)

Изображение

Изображение

Виртуальный пиксель 9х9 реальных. Скругленного угла нет, дырка есть в правом нижнем углу прямоугольника выделения, но на таком большом экране почти незаметна.

7 - Java 2 Microedition - Nokia N90

Изображение

Изображение

Виртуальный пиксель 2х2 реальных. Скругленных углов нет, т.к. это ява, честно рисующая прямоугольники) И пиксели такие чудные потому что dotted-линия (пунктирная) рисуется явой не пунктиром точка-через-точку, а отрезками по несколько пикселей. Но глазами-то видно что она рисует, а вот фото с экрана дает интересные одиночные ярко-горящие точки.

8 - Java 2 Microedition - Nokia 7900 Prism

Паинткад не захотел фотографировать. Показывает странные значки в левом верхнем углу, по очереди два значка, один просто серо-голубой, и один перечеркнутый) Ничего не понятно.

Доступ к системной камере в меню "М.медиа" показал что у этой нокии не хочет работать камера если "батарея разряжена" (было 20%, не так уж и разряжена). Ну ладно, ставим на зарядку =)

Зарядилась. Теперь не хочет снимать. Видимо, вылетает по исключению, т.к. кнопка "отмена" работает отлично.

Смотрим исключение:

Изображение

Телефон говорит, что не умеет фотать методом getSnapshot() если создан плеер не с локатором capture://image. В паинткаде прописан другой локатор - capture://video. Меняем на capture://image - и эта нокия зафоткала!

Изображение

Изображение

Можно было бы оставить в j2me-камере локатор capture://image, но проверяем на Nokia N90 - а она теперь не фоткает по запросу "Авто" (и видео съемки не показывает, просто белый экран), а выдает странное исключение:

Изображение

Посмотрим исключения раньше, при создании плеера и видеоконтрола - там другое исключение:

Изображение

Т.е. эта старая нокия N90 не знает локатор capture://image =)

Придется, наверное, по умолчанию сделать всё-таки локатор capture://video (он то работал и в телефонах других марок, в сименсах и т.д.), а в настройках дать возможность переключить на capture://image для таких нокий как 7900 Prism.

И всё-таки - какие бывают для Manager.createPlayer на j2me локаторы для протокола capture:// ?

Во всех исходниках J2ME по работе с камерой ссылаются на JSR-135 (оно же MMAPI) https://www.jcp.org/en/jsr/detail?id=135 . Какие же бывают локаторы вообще (вдруг их пять разных, а не два)?

1. Книжка по MMAPI

Например, здесь https://objectcomputing.com/resources/p ... -media-api описываются локаторы capture://video, capture://audio и по URL файлы музыкальные или видео. При этом пишут "MMAPI is also capable of recording audio and video as well as capturing images from a camera" - MMAPI подходит под запись аудио и видео также, как и под съемку фоток с камеры.

Поиск MMAPI дал одну из книжек - Pro Java ME MMAPI ( https://link.springer.com/book/10.1007/ ... 302-0157-1 )

Поиск книжки по запросу "Pro Java ME MMAPI djvu pdf" сразу дал полную версию книжки в PDF в полу-текстовом формате: https://dai.fmph.uniba.sk/~borovan/JAVA ... y.2006.pdf

В начале книжки есть таблица запросов возможностей MMAPI, и если спросить насчет capture, то эмуляторы и телефон (моторола какая-то) выдают совершенно разные по формату данные - где возвращаются форматы, а где-то слова, которые подходят в локатор после capture://:

Изображение

Если поискать по книжке capture:// - по исходникам и таблицам находится раз пять capture://audio, потом раз пять capture://video, потом один последний раз capture://camera:

Изображение

По описанию: если его вызвать, то вылезет съемка с камеры, но с настройкой выдержки, вспышки, фокуса, зума и снимков пачками (в противоположность методу getSnapshot() для съемки одиночных фото). Но эта фича относится, по данным книжки, к JSR 234 (Advanced Multimedia Supplements, расширенная поддержка мультимедиа). Может ее и не было на телефонах, т.к. мобильная ява где-то в 2010 году и загнулась как вышли андроиды =)

Еще есть раздел прямо "Capturing Video and Images" - но там используют в примерах для съемки фото capture://video и getSnapshot() как в паинткаде. Под нокию 7900 это не подойдет.

2. Stackoverflow про съемку с нокии

Еще на stackoverflow кто-то спросил про нокию и съемку с камеры: https://stackoverflow.com/questions/543 ... ke-a-photo
Ему кидают ссылку на пример, который будет "работать на Nokia 3110" - и там capture://image (!): https://pastebin.com/LAdDEwb6
Т.е. этот локатор - нокиевская особенность? (или суперновый способ съемки с камеры, появившийся в 2007 и быстренько умерший вместе со всей мобильной явой)

3. Другие протоколы capture:// тоже бывают

На сайте про этот продвинутый JSR 234 (дополнение к JSR 135) https://www.j2megame.org/j2meapi/JSR_23 ... ments_1_1/ есть в примерах capture://radio , можно сделать свое приложение-радио =)

Итог

В общем, "capture://image" это какая-то экзотика. Делаем отдельную настройку на принудительное переключение локатора на capture://image для Nokia 7900 Prism (и, может, других телефонов с подобным внутренним прошитым софтом, не одна же эта нокия 7900 вышла на этой платформе)

Новый пункт меню в настройках "Фото-протокол"/"Photo-protocol":

Изображение

Внутри - показывается текущий протокол и спрашивает переключить ли на другой:

Изображение

Nokia 7900 фотографирует через capture://image:

Изображение

Ну и помощь по кнопке "0" на пункте "Фото-протокол" в настройках:

Изображение

Изображение

Теперь окошко выбора цвета Getco включает по кнопке "*" режим прицеливания для экранов высокого разрешения:
- курсор превращается в большую крестовину,
- метки и область выделения рисуются на рисунке жирно (толщиной 1 виртуальный пиксель),
- появляется область увеличения 11х11 пикселей,
- в области увеличения 11х11 метки и область выделения жирно рисуются поверх этих 11х11 крупных пикселей,
- в области увеличения 11х11 курсор рисуется рамкой ярко если он внутри выделенной области и полупрозрачно если он вне выделенной области,
- в области увеличения 11х11 внутри рамки курсора всегда рисуется цвет, который под курсором (метки и границы области выделения там не мешают).

Плюс к тому добавлена поддержка фотографирования через протокол capture://image на телефонах типа Nokia 7900 (не поддерживающих стандартный протокол capture://video).

Ответить

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 0 гостей