Задать вопрос
  • Java - тормозит, а Cи - нет?

    @odissey_nemo
    Программист, ГИС-системы, растры, космоснимки
    Числодробительный код на Java примерно в 2-3 раза медленнее, чем на С++ или, скажем, Delphi. Так кажется на собственной субъективном опыте. Т.к. на Java слишком много разных фич пристыкованы в байт-коде чисто механически.

    Но писать программы со вполне удовлетворительным быстродействием вполне можно. Даже нумерологические. Скажем, полная обработка растров размерами 10000 на 10000 (бинаризация или другие матричные фильтры) средствами собственного кода (без нативных библиотек) вполне отрабатывает за секунды. Не утомляя пользователя. Но!Тут и встаёт вопрос о знании алгоритмов, вернее, какой где стоит применить.
    Ответ написан
    Комментировать
  • Какой java библиотекой конвертировать multi-strip tiff на pdf?

    @odissey_nemo
    Программист, ГИС-системы, растры, космоснимки
    Strips - это отдельные последовательные блоки в Tiff. Для ускорения доступа к произвольным частям растра.

    Использовать в целях всеядности и оптимальности можно GDAL (есть Java коннект) - то натуральный зверь, жрущий всё подряд. Относительно сложен в освоении, но достаточно прост в использовании. Примеров - много.
    Т.к. GDAL работает почти с любыми форматами растров, проблем с переделкой существующего кода не будет. Разве только с новым кодом работы с GDAL) И да, он занимает много места (на каждый формат своя библиотека).

    Возможно, ради только TIFF и не стоит с GDAL заморачиваться.
    Ответ написан
    2 комментария
  • Почему выполняется только последнее if?

    @odissey_nemo
    Программист, ГИС-системы, растры, космоснимки
    Вместо str1 == str2 лучше использовать str1. equals(str2)
    Ответ написан
    Комментировать
  • В какие крупные компании можно устроиться JAVA программистом, и как?

    @odissey_nemo
    Программист, ГИС-системы, растры, космоснимки
    Смотрят на диплом, опыт работы. Пропускают через детектор лжи (в конторах, приближённых или вышедших из органов). Пропускают через собеседование.

    Поработал. От 3 месяцев до 6 лет.

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

    Бездушная атмосфера. Менеджирование не процессов, а людей. Контроль времени, а не результатов. Ибо цель - прибыль, а не решение.
    Ответ написан
    Комментировать
  • Как округлить число до двух знаков после запятой (Java)?

    @odissey_nemo
    Программист, ГИС-системы, растры, космоснимки
    Для конкретного примера может и подойдут решения верхние, но в общем случае - сильно не уверен.
    Гарантированно можно так:
    jLabel5.setText(jLabel5.getText() + String.format( Locale.US, "%.2f", y) );
    Тут и разделитель чёткий - точка, и форма представления не окажется вдруг научная.
    Ответ написан
    Комментировать
  • Как последовательно выводить текст на JFrame?

    @odissey_nemo
    Программист, ГИС-системы, растры, космоснимки
    Ссылка на учебник текстовых компонентов Java. Я использовал для сходных целей JTextArea. Для разбиения по строкам использую txtArea.getText() + '\n' + "Тест новой строки"; (это только пример).

    Не очень удобно перед компьютером обновлять текст целиком, добавляя новую строку к общему буферу предыдущего текста, но ничего более простого в Java нет. Можно, впрочем, организовать устранение предыдущих строк, чтобы отображаемый буфер не становился очень уж большим.
    Ответ написан
    Комментировать
  • Как разделить содержимое монохромного изображения на отдельные файлы?

    @odissey_nemo
    Программист, ГИС-системы, растры, космоснимки
    Берётся любой алгоритм заливки одноцветного растрового полигона любым цветом, начиная с любой его точки заданного цвета. Они были ещё под ДОС заготовлены в любом растровой библиотеке (в том-же Борланде).

    1. Ищется слева направо сверху вниз первая точка нужного цвета. Если не найдена - выход. Иначе на 2.
    2. Точка запоминается на будущее. Начиная от найденной точки, заливается полигон, включающий её каким-либо рабочим цветом (алгоритмом заливки).
    3. Определяются bounding box (экстенты) этого найденного полигона (top Y уже известен - как у первой точки) в растровой системе координат. Создаётся растр этого размера (или чуть расширенный для красивых границ). В него перегоняется найденный полигон.
    4. Сохраняется найденный полигон в файл.
    5. Из оригинального изображения устраняется найденный полигон. Скажем, методом той же заливки, но уже цветом отсутствия. Или вариацией операции XOR по цвету заливки.
    6. Начиная с запомненной точки, ищется следующая точка нужного цвета.
    7. Если найдена, на шаг 2.
    8. Если не найдена, выход.

    Не ясным пока остаётся поиск экстентов (Bounding box, BB). Самое простое - сканировать каждый раз весь исходный растр, что не комильфо. Или как-то модифицировать алгоритм заливки - с запоминанием экстентов. Что достаточно просто. И залил и экстенты получил за один раз.
    Ответ написан
    Комментировать