Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feature request: Whole Page button in Select Content #49

Open
0x2d7e21 opened this issue Dec 7, 2024 · 23 comments
Open

Feature request: Whole Page button in Select Content #49

0x2d7e21 opened this issue Dec 7, 2024 · 23 comments
Labels
dispute Debate question Further information is requested wrong dubious question

Comments

@0x2d7e21
Copy link

0x2d7e21 commented Dec 7, 2024

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

@zvezdochiot
Copy link
Member

Hi @0x2d7e21 .

Вполне очевидный вопрос: А при повороте, перспективе или кривых этот выбор какую область будет выбирать?

@zvezdochiot zvezdochiot added dispute Debate question Further information is requested labels Dec 7, 2024
@0x2d7e21
Copy link
Author

0x2d7e21 commented Dec 7, 2024

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

@zvezdochiot
Copy link
Member

@0x2d7e21 say:

Возможно максимально возможный прямоугольник

Это логично только при "отсутствии искажений", но во всех остальных случааях - крайне сомнительно. @noobie-iv в STU есть определённая реализация подобного, но я её не сильно щупал. Ежели будет какое мнение на случай наличия искажений - высказывай, не стесняйся.

@zvezdochiot zvezdochiot added the wrong dubious question label Dec 7, 2024
@0x2d7e21
Copy link
Author

0x2d7e21 commented Dec 11, 2024

в STU есть определённая реализация подобного

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

@0x2d7e21
Copy link
Author

0x2d7e21 commented Dec 11, 2024

только при "отсутствии искажений"

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

@zvezdochiot
Copy link
Member

@0x2d7e21 say:

в чем проблема описать вокруг любой искаженной фигуры прямоугольник или вписать в нее

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

@0x2d7e21
Copy link
Author

Проблема не в повороте, а в том, что программа не определяет правильно границы, не вписывая в них номера страниц, и приходится вручную править. При том, что страница совершенно не требует правки, идеальный скан. И нет возможности просто выбрать всю страницу как необходимую область. И не нужно ее делать дефолтной. Но если вопрос стоит, что мне это не нужно, то вопросов нет. Но я подумал, что тут вроде как есть поддержка, и что-то делается, проект как-то хочет развиваться. И данный функционал, как оказалось, есть и в STA, и в STU, значит там он кому-то понадобился. Вопрос можно снять, если нет желания. Я нашел весь необходимый функционал на STA и в STU.

@zvezdochiot
Copy link
Member

zvezdochiot commented Dec 11, 2024

@0x2d7e21 say:

если вопрос стоит, что мне это не нужно, то вопросов нет.

Нужно, но только не в таком виде. Я же не слепой и видел эту опцию в других семействах ST. И хотел её позаимствовать. Но именно из-за вопроса с наличием искажений резко дал по тормозам. Без разумного решения этого вопроса для случаев наличия искажений, я к этому вопросу возвращаться не буду.

PS: Ваше утверждение, насчёт отсутствия необходимости в этапе обрезки и, соответственно, выравнивания, крайне сомнительно для случая, когда все страницы имеют разные размеры. Ежели усё уже сделано, так какого рожна размеры то разные? (я же эту прогу веду не для того, чтобы с кодом поиграться, а для того, чтобы использовать, и использую постоянно, так что опыта по материалу у меня как у дурака фантиков).

@0x2d7e21
Copy link
Author

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

@zvezdochiot
Copy link
Member

zvezdochiot commented Dec 11, 2024

@0x2d7e21 say:

Страницы одинакового размера

Выберите всю страницу и примените ко всем. Без "костылей". Именно так и делаю на таком материале. Не вопрос.

Вы лукавите, причём нагло:

@0x2d7e21 say:

Можно конечно выбрать область на первой странице и применить ко всем, но в случае разных размеров страниц этот вариант неуниверсален.

@0x2d7e21
Copy link
Author

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

@0x2d7e21
Copy link
Author

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

@0x2d7e21
Copy link
Author

0x2d7e21 commented Dec 12, 2024

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

@plzombie
Copy link
Contributor

@0x2d7e21 в соседней ветке обсуждение остановилось, так как никто не понимает, как данную фичу реализовать (проблемы начинаются на стадии работы с колонкой thumbnails). Кодовая база с другими версиями scantailor достаточно сильно разошлась, как и функционал. Вон от меня тоже висит баг с hidpi, который я не могу пофиксить, потому что там работы на пару строчек кода, а перерыть надо пару мегабайт в поисках места, куда их вставить.

@zvezdochiot
Copy link
Member

zvezdochiot commented Dec 12, 2024

@0x2d7e21 say:

И трудно поверить, что вы с таким не столкнулись.

Именно! И не стоит на это надеятся. И на таком материале, после тщательного изучения, всегда выявлялась стопроцентная необходимость в обрезке и выравнивании, о чём я и говорил ранее. Без этого данный материал нельзя хорошо обработать. Ежели вы хотите обрабатывать материал плохо, то используйте другие представители семейства ST: STA или STU. И пишите под вашей поделкой: "Обработано в STA" или "Обработано в STU". Но ни в коем случае не обрабатывайте в STEX.

PS: "Wrong" - означает не что то аморфно неправильное, а неправильно заданный вопрос или его нелогичность. В соседнем issue просьба развивать функционал, который вообще надо ликвидировать и полностью переносить в "Эскизы". Только мне непонятно как. В данном issue логика запрашиваемого вами функционала мне до конца совсем непонятна, а цель такого функционала - делать обработку плохо. Отсюда и "Wrong" в обоих случаях!

@0x2d7e21
Copy link
Author

0x2d7e21 commented Dec 12, 2024

Вобщем суть проблемы я не смог донести. Я говорю про возникшую проблему и что решение это или делать вручную в программе или вне программы, что муторнее. А вы пытаетесь меня убедить, что такой проблемы нет, и предлагаете решения, неуниверсальность которых я озвучил еще в первом посте. Наглядно бы показать было бы проще конечно. Пока пользуюсь ста и сту, все хотелки работают как надо. Разницы в качестве пока не заметил, но увидил в них более гибкую настройку и больший функционал. Стех была удобна именно порогом входа в инструмент и неудачный первый опыт в других. А в чем проявляется «худшесть» их обработок?

@zvezdochiot
Copy link
Member

zvezdochiot commented Dec 12, 2024

@0x2d7e21 say:

такой проблемы нет

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

@0x2d7e21 say:

А в чем проявляется «худшесть» их обработок?

По разному: Либо текст невыровнен, хотя ежу видно, что требуется выравнивание. Либо он не приведён к одному масштабу. Либо вообще наблюдаем нарушение пропорций отдельных страниц.

@noobie-iv
Copy link
Member

@0x2d7e21 say:

ста и сту, все хотелки работают как надо

Теоретически все тейлоры - СКАН.

То есть требуют чистое, равномерно освещенное, высокого разрешения изображение, как максимум - слегка повернутое, потому что его неровно положили на стекло. Если такое есть, STA/STU - то, что надо.

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

никто никому ничем не обязан

Фокус не в этом. А в том, что программа написана вполне профессиональными программистами на плюсах. И править ее нужны такие же. А взамен есть полтора колченогих любителя. Лично я (не программист) с мая по декабрь пытаюсь микропародию на ST написать в свободное время, чтобы хоть примерно въехать, как у него кишки работают; и пока вижу, что в этот год уже не уложусь.

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

@zvezdochiot
Copy link
Member

zvezdochiot commented Dec 12, 2024

@noobie-iv say:

А взамен есть полтора колченогих любителя. Лично я (не программист)...

А я вообще обработчик сканированного материала. И не скрываюсь. Так что, где ты полтора насчитал? Максимум один наскребётся, ежели всех поднапрячь, включая Александра. ;)

PS: Роман, а ты не пробовал YASW для своих целей "попинать"?

@noobie-iv
Copy link
Member

@zvezdochiot say:

где ты полтора насчитал?

А вот надо в double-ах суммировать, а не в int-ах 😄

не пробовал YASW для своих целей "попинать"?

Нет, чтобы править ST, надо думать как ST 😢

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

Вроде как осталось мне эту эскиз-кашу (которая ThumbnailPixmapCache, она внутри тоже фоново-многопоточная) осилить, а там все вопросы вызывает. Есть тут раздел "вопросы в воздух"?

Например, зачем нужен класс BackgroundLoader, который только содержит ссылку на меня, и мне же передает сообщение, которое я же ему отправляю. Почему не отправлять сообщение сразу себе?

Или как можно делать int m_totalLoadAttempts, а потом m_totalLoadAttempts++ в бесконечном цикле - это не UB разве? Не надо его на unsigned поменять? И т.п.

Энта каша в двух версиях есть - STU/STA, и STEX. И обе версии появляются запуливанием одного большого коммита, который содежит все эти 40k кода разом. А внутре - несколько очередей, несколько статусов, и несколько флагов, которые постоянно друг друга хаотично переключают через потоки и события, вот над ними я и туплю уже не один день.

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

@zvezdochiot
Copy link
Member

@noobie-iv say:

Я ее допинаю, конечно

Как допинаешь, сразу делаю заказ в STD (простите за наглость, но уж мочи нету) на новый этап перед page_layout : filtering (не использовать "filters", ибо "filters" уже "приспособил" Тулон под этапы). В новый этап включить не только сами фильтры, но и масштабирование (причём двухосное) каждой отдельной страницы в виде масштабных коэффициентов от 0.5 до 2.0. Алгоритм автоматического определения этих коэффициентов быстро "придумаем", не пережиавать. ;)

@noobie-iv
Copy link
Member

И в микрокаше я запутался. Пришлось сначала нанокашу варить. Из одного элемента.

mvpc.tar.gz

Ну, хотя бы базовая логика дошла. Теперь в mvst чуть расширенную версию свалять, и можно аналогичное описание для ST делать. А там, глядишь, и стадии/фильтры править можно будет научиться.

Прошлый раз я в отладчике в кашу провалился на прошлый новый год. А это, по интерполяции, планы до следующего нового года. Попрошу дедушку на новый год мозгов принести 😄

@noobie-iv
Copy link
Member

Таки вот еле-видимая-версия. Эскизы не создаются и не сохраняются, файлового вывода нет. Не факт даже, что работает правильно, особенно самодеятельность в кеше. Одна польза - теперь можно проследить базовую логику работы. В реальных ST логика раза в два-три навороченнее будет. Но поиграть еще пару лет до полного сходства я не готов. На этом, видимо, закончу возню с mvst. Разве что еще помедитирую на диаграммки и добавлю текстовое описание.

mvst.tar.gz

Список использованных классов:

Classes.pdf

И трассировка одиночного щелчка мыши по эскизу (узнаю прошлоновогоднюю кашу):

PageChangeFlow.pdf

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
dispute Debate question Further information is requested wrong dubious question
Projects
None yet
Development

No branches or pull requests

4 participants