Инверсия чёрно-белых растров в пакетном режиме

Обсуждение бесплатной версии EasyTrace
Ответить
Унру Эдуард
Новоприбывший
Сообщения: 4
Зарегистрирован: 03 июл 2015, 11:33
Репутация: 0

Инверсия чёрно-белых растров в пакетном режиме

Сообщение Унру Эдуард » 03 июл 2015, 13:49

Здравствуйте!
Решил написать, потому что уже потерял всякую надежду самому "дойти" до истины. :cry:
Дело вот в чём. Есть проект, в котором более 200 чёрно-белых растров. Для адекватной работы их нужно инвертировать (поменять местами чёрный и белый цвета). По отдельности с каждым растром это сделать не составляет труда, но их МНОГО ( :!: ). Эта монотонная работа отнимает очень много времени и "чуть-чуть" выбешивает. Проблему добавляет ещё то, что разных проектов с разными неинвертированными растрами тоже много...
Крик о помощи, собственно, заключается вот в чём: подскажите, как инвертировать несколько растров пачками? Есть ли вообще такая возможность?
Во внутренней справке я не нашёл решения проблемы (не исключено, что я не очень внимательно читал).
Пробовал понять, где во внутренностях проекта хранится информация о цветах растра, чтобы поменять значения через блокнот. Судя по всему, она в самом JET-е, а там ничего не понятно.

Версия программы: 9.7 PRO

Очень буду очень благодарен за помощь.

Григорий Степанов
Easy Trace – эксперт
Сообщения: 329
Зарегистрирован: 03 сен 2009, 11:13
Репутация: 64
Откуда: Россия, г.Рязань
Контактная информация:

Re: Инверсия чёрно-белых растров

Сообщение Григорий Степанов » 06 июл 2015, 14:18

Прямой возможности инвертировать группу растров в ET нет. Но есть варианты:

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

Естественно, всё это возможно только при условии, что для каждого из растров была задана Граница отображения, либо поля растров обрезаны и покрытие собрано строго "встык".

Впрочем, если собирается площадное мозаичное покрытие, границы отображения задаются в обязательном порядке, иначе смежные растры "наезжают" на соседей своими полями или зарамочной информацией.

Вот только количество входящих в проект планшетов (200) несколько настораживает...

Вариант 2.
Покрытие собрано, растры "наезжают" друг на друга, какие из них следует инвертировать, понятно только оператору.

Шаг 1. Вызываем Комбинированный растровый инструмент. Создаём новую стратегию из единственной операции Инверсия и сохраняем её. Выключаем кнопку "Просмотр" для ускорения работы.

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

Шаг 3. Удерживая Alt, указываем на инвертируемый растр (он становится текущим растром). Нажимаем кнопку "Применить" Комбинированного растрового инструмента. Указываем на следующий растр и повторяем операцию.

---------- Примечание ----------
Обычно мы используем чёрные растры с белыми линиями, а в ET для бинарных растров ЧЁРНЫЙ цвет является "прозрачным". То е. если смежные растры "входят" друг-в-друга как в настоящей мозаике, то чёрные поля растра лежащего сверху (ведь растры, это всегда прямоугольники!) не могут "стереть" часть белых линий растров лежащих ниже. Соответственно, такую мозаику легко превратить в один, "сшитый" растр ... но только при условии, что для растров заданы Границы отображения,иначе вся посторонняя, зарамочная информация (если она не обрезана) тоже "отпечатается" на растрах-соседях.

Унру Эдуард
Новоприбывший
Сообщения: 4
Зарегистрирован: 03 июл 2015, 11:33
Репутация: 0

Re: Инверсия чёрно-белых растров

Сообщение Унру Эдуард » 08 июл 2015, 10:22

Григорий, спасибо за совет! Второй вариант действительно чуть быстрее, чем работа по-старинке.
А нет ли возможности как-то "хитро" обработать растры вне программы Easy Trace? Я пробовал через разные просмотрщики сделать инверсию, но ET на это никак не отреагировал (лишь, иногда выдавал предупреждение об изменение растра вне программы). У меня есть подозрение, что это связано с тем, что при пересохранении меняется тип сжатия. В этом есть хоть какая-то доля истины?

Донецков
Гуру
Сообщения: 3058
Зарегистрирован: 19 май 2010, 19:44
Репутация: 189

Re: Инверсия чёрно-белых растров

Сообщение Донецков » 08 июл 2015, 11:29

Формат файла растра какой?
Если стандартный, то есть много графических редакторов, которые могут пакетно изменять параметры...

Унру Эдуард
Новоприбывший
Сообщения: 4
Зарегистрирован: 03 июл 2015, 11:33
Репутация: 0

Re: Инверсия чёрно-белых растров

Сообщение Унру Эдуард » 08 июл 2015, 12:28

Изначально, растры - бинарные tiff'ы с LZW-сжатием. Но, при добавлении их в проект, сжатие меняется на какое-то "Факс-кодирование Группа 4". Графические редакторы (которыми я пользовался) не "умеют" так сжимать. может, оно просто как-то по другому называется?

Ariki
Гуру
Сообщения: 731
Зарегистрирован: 12 янв 2011, 22:40
Репутация: 304
Ваше звание:

Re: Инверсия чёрно-белых растров

Сообщение Ariki » 08 июл 2015, 12:48

Этот вид сжатия ещё называется CCITTFAX4. Пакетно обработать растры вне EasyTrace лучше всего с помощью утилиты gdal_translate, там можно настроить все параметры GeoTIFF. В частности, существуют теги PHOTOMETRIC_MINISBLACK и PHOTOMETRIC_MINISWHITE, из-за которых в некоторых программах просмотра растры оказываются инвертированными.

Унру Эдуард
Новоприбывший
Сообщения: 4
Зарегистрирован: 03 июл 2015, 11:33
Репутация: 0

Re: Инверсия чёрно-белых растров

Сообщение Унру Эдуард » 08 июл 2015, 13:25

Спасибо! Обязательно попробую эту вещь!

Григорий Степанов
Easy Trace – эксперт
Сообщения: 329
Зарегистрирован: 03 сен 2009, 11:13
Репутация: 64
Откуда: Россия, г.Рязань
Контактная информация:

Re: Инверсия чёрно-белых растров

Сообщение Григорий Степанов » 08 июл 2015, 14:56

Небольшое дополнение.

Если растры уже были привязаны к полю проекта, то сообщение "Растр XXX был изменён за пределами проекта ..." может появиться только в случае изменения "цветности" (бинарный->палитровый->truecolor ...) или размеров растра. Именно размеров, ширины или высоты, а не объёма на диске или применяемого метода сжатия.

Сам факт инверсии растров за пределами проекта программе безразличен (так что, после пакетной обработки, вам не придётся 200 раз подтверждать загрузку изменённых растров :D )

Донецков
Гуру
Сообщения: 3058
Зарегистрирован: 19 май 2010, 19:44
Репутация: 189

Re: Инверсия чёрно-белых растров

Сообщение Донецков » 08 июл 2015, 16:27

Если нет желания работать с консольным gdal, то есть графические редакторы, типа FastStone ImageViewer, в нем можно выбрать несколько файлов и выполнить нужную трансформацию...

Ответить

Вернуться в «EasyTrace»

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

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