Оптимизация изображений

Riot - Инструмент радикальной оптимизации изображенийПриложение RIOT - это довольно простая, но в то же
  1. Оффлайн

    WYLEK

    Звание: Легенда

    Админ

    Сообщений: 2180

    Создано тем: 315

    Рейтинг: 10

    Репа: (245|245|0)

    Баллы: 3410

    Был: 2024-07-09 07:18

    Лайков: 197

    Цитата: Krig
    Предыдущий вариант перевода был более правильный и приемлемый.



    Ну почему же, кратко и соответствует действительности. Вообще то в программах видеоредакторов переводится так - До: и После:. И нужно учесть, что так в исходниках создателей1tooth 

    18 октября 2019 - 08:24 / #11
  2. Онлайн

    Автор темы

    NNK_RTR

    Звание: Бывалый

    Команда сайта

    Сообщений: 310

    Создано тем: 53

    Рейтинг: 5

    Репа: (62|62|0)

    Баллы: 1951

    Был: 2024-07-27 07:49

    Лайков: 92

    За "назойливость" говорю спасибо!
    Критика справедлива. Пусть я не вполне с ней согласен, зато она дает повод для размышлений и дискуссий
    Цитата: undefined
    1) Почему изменили перевод строк в главном окне программы


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

    Цитата: undefined
    2) Я обратил внимание, что в оригинальном файле программы...


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

    Цитата: undefined
    Так и осталась без перевода строка


    Уже перевел. Просто эту строку Radialix почему-то не видит. Видит предыдущую строку и следующую. Оставил для перевода в шест. редакторе и забыл...

    Цитата: undefined
    Диалог пакетной обработки.


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

    Вообще, меня заинтересовал перевод этой программы именно потому, что в Radialix-3 не отображается форма. Повторный перевод я попытался выполнить в Radialix-2. Скажу сразу, Radialix-3 умнее. Он просто не стал связываться с тем, чего не понимает. Компиляция в Radialix-2 часто приводит к сбоям, причем к таким сбоям, что откат не помогает. Я все таки перевел нижнюю панель в Radialix-2. Потихонечку, компилируя почти после каждого перевода (компоновка компонентов намного удобней). Остальное перевел уже в Radialix-3

    Отказ от оптимизации файлов в первом переводе произошел из -за перевода строк в выпадающем списке "Количество цветов (грубо)". Дело в том, что программа узнает о выборе пользователя по содержимому строки (вычленяет 256, 128 или 16 из строки и вызывает соответствующую функцию) Не знаю, почему программист выбрал такой путь, а не использовал свойство "Selected", ведь ему заранее известна очередность строк в списке и пользователь эту очередность и само содержимое изменить не может. Конечно, можно было просто не переводить эти строки, как это сделал автор переданного мне Вами по ссылке перевода, но это не есть gut.Именно подобные сложности мне и интересны...
    Пишите, критикуйте, доказывайте. Не то, чтобы в споре действительно рождается истина, но все же...
    Krig нравится это сообщение.
    18 октября 2019 - 17:48 / #12
  3. Оффлайн

    Krig

    Звание: Бывалый

    Знаток

    Сообщений: 188

    Создано тем: 7

    Рейтинг: 4

    Репа: (86|86|0)

    Баллы: 56

    Был: 2023-03-14 15:26

    Лайков: 82

    NNK_RTR, спасибо за развернутый ответ!  ok2

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

    Все верно, так и есть. Но найти нужное место в коде не сложно. Берем декомпилятор приложений Delphi (Interactive Delphi Reconstructor - автор crypto), открываем файл программы и смотрим код события изменения главной формы приложения.

    Скрин 1


    По комментариям, сделанных декомпилятором, находим проблемные элементы управления:Label_Optimized (строка "Optimized image:") и dim_img_optimizata (вывод значения размера оптимизированного изображения). Имена этих элементов управления можно узнать из шаблонного редактора. После анализа алгоритма мы узнаем, что координата Х элемента управления Label_Optimized вычисляется как координата Х элемента ScrollBox2 плюс константа 35 (23 hex); координата Х элемента dim_img_optimizata вычисляется как координата Х элемента Label_Optimized плюс константа 140 (8С hex). Установка полученных значений выполняется функцией SetLeft.

    Скрин 2


    Дальше или в отладчике, или в шестнадцатеричном редакторе изменяем эти константы на нужные значения, которые можно узнать при редактировании диалога в шаблонном редакторе. В принципе, в корректировке нуждается только одно значение - 140 (8С hex). Но чтобы текст не прыгал туда-сюда при изменении размеров окна программы, как видно на рисунке ниже, то можно ещё подкорректировать значение 35 (23 hex).

    Скрин 3


    В итоге, например, у меня получились следующие корректировки:
    константу 35 (23 hex) меняем на 22 (16 hex)
    константу 140 ( hex) меняем на 267 (10B hex)

    Цитата: NNK_RTR
    Просто эту строку Radialix почему-то не видит.

    Дело в том, что помимо основной ссылки на сроку "Enter desired filesize in kilobytes (KiB)", есть ещё ссылки на её часть (две ссылки на символ закрывающей круглой скобки -)- ). Поэтому Radialix не дает её редактировать, что в принципе верно. Выход из такой ситуации зависит от длины перевода. Если перевод короче оригинала, то корректируем ссылки на символ ) или же оставляем его на месте (не затираем) и вставляем перед ним нулевой байт, если позволяет место. Если перевод длиннее оригинала, то исходную строку оставляем без изменений, а переведенную строку размещаем в другом месте и корректируем ссылку на её новое положение (например, перевод сроки можно разместить в добавленной Radialix секции).

    Цитата: NNK_RTR
    Скажу сразу, Radialix-3 умнее. Он просто не стал связываться с тем, чего не понимает.

    Тут я с вами не соглашусь. Это баг Radialix 3. По вашему все остальные шаблонные редакторы, которые успешно отображают данную форму и позволяют её редактировать, делают это потому что они не "умные"? Просмотрите программу в Susilizer, SDL Passolo, Lingobit Localizer. Ни у одного из них нет проблем с отображением формы. Я уже не говорю о простейших инструментах типа DFM Edit, EXE Explorer и других, которые также делают это успешно.
    NNK_RTR нравится это сообщение.
    Сообщение отредактировал 23 января 2023 - 18:47
    19 октября 2019 - 12:52 / #13
  4. Онлайн

    Автор темы

    NNK_RTR

    Звание: Бывалый

    Команда сайта

    Сообщений: 310

    Создано тем: 53

    Рейтинг: 5

    Репа: (62|62|0)

    Баллы: 1951

    Был: 2024-07-27 07:49

    Лайков: 92

    Однако... !!!!
    Я всю жизнь был неравнодушен к инструментам...
    А у Вас такой арсенал!!!
    Может еще что нибудь подобное есть?
    Не уверен, что я смогу многое осилить и найти применение, но хотя бы подержать в руках.

    Цитата: undefined
    баг Radialix 3


    Я не сравнивал Radialix с другими редакторами. Я сравнивал разные версии. Если бы Radialix 2 компилировал бы без сбоев, то я не сделал бы вывод, что Radialix 3 умнее. Что интересно, Radialix 2 не видит границ (margins) компонентов image 1 и 2 и, после компиляции, зачастую пишет отрицательное число или другие неприемлемые значения в эти поля, причем, расширяет это поле так, что исправить в шест. редакторе невозможно. Эти поля в Radialix 2 пустые и недоступны для редактирования. Попытка добавить им свойства "Только для чтения" к успеху не привели. Просто нужно аккуратно, опасаясь щелкнуть в любом месте формы, кроме нижней панели, перевести все, что можно, почаще компилируя и проверяя результат. Отсюда и вывод, что Radialix 2 берется за ту работу, с которой он не может без ошибок справиться.

    Я предпочитаю Radialix по той причине, что он может работать с жестко закодированными строками, да еще и имеет плагин для IDA.
    Вы знаете другие подобные редакторы?
    19 октября 2019 - 17:59 / #14
  5. Оффлайн

    Krig

    Звание: Бывалый

    Знаток

    Сообщений: 188

    Создано тем: 7

    Рейтинг: 4

    Репа: (86|86|0)

    Баллы: 56

    Был: 2023-03-14 15:26

    Лайков: 82

    Цитата: NNK_RTR
    Может еще что нибудь подобное есть?


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

    Цитата: NNK_RTR
    Я предпочитаю Radialix по той причине, что он может работать с жестко закодированными строками, да еще и имеет плагин для IDA.


    Вообще предпочитаю переводить программы в исходном коде. Все строки и ресурсы на виду, делай с ними что хочешь. biggrin

    Цитата: NNK_RTR
    Вы знаете другие подобные редакторы?


    В том-то и дело, что подобных редакторов больше нет. Есть просто инструменты для работы со строками в коде. Наиболее популярный из них и вы с ним знакомы это OgreGui. Потом exestringz (полное название Executable's strings lister and replacer, автор Luigi Auriemma) - консольная программа, довольно неплохая. Есть еще Lephone Localize Plus, но не поддерживает увеличение длины строк и очень капризна. Но это все устаревшие инструменты и только для программ 86-бит. Из современных я видел только у китайцев и, конечно же, только для китайцев. Например, программа Athena-A - навороченный инструмент для поиска, анализа и замены строк в коде на локализованные. Или другой инструмент "Passolo 非标字串宏" в виде VB-макроса для SDL Passolo - также очень навороченная приблуда с возможностью переводить жестко закодированные строки прямо в редакторе Passolo. Довольно интересное и продвинутое решение, а самое главное - рабочее.
    Да, еще остается ручной способ, при помощи отладчика и/или шестнадцатеричного редактора. 1tooth
    19 октября 2019 - 21:28 / #15
  6. Онлайн

    Автор темы

    NNK_RTR

    Звание: Бывалый

    Команда сайта

    Сообщений: 310

    Создано тем: 53

    Рейтинг: 5

    Репа: (62|62|0)

    Баллы: 1951

    Был: 2024-07-27 07:49

    Лайков: 92

    Возникла такая проблема:
    Скачал по указанной Вами ссылке архив IDR-master.zip. Распаковал его. Папка содержит кучу исходных и прочих файлов и три папки.
    Запускаю единственный исполнимый файл Idr.exe. В справке написано, что если в папке с программой нет соответствующей базы знаний (knowledge base), то и программы написанные на соответствующих версиях Delphi не могут быть проанализированы. Так у меня и получается. В пункте "Load EXE" меню "Файл" доступна только опция автоматического определения версии, все другие недоступны.
    В папке с программой находятся файлы от "syskb2.bin" до "syskb2014.bin". Если это файлы базы знаний, то почему программа не обращает на них внимания, если нет, то где взять нужные файлы и какое у них расширение.
    Судя по скриншоту, у Вас все прекрасно работает. Подскажите пожалуйста причину и посоветуйте, что нужно сделать
       
    19 октября 2019 - 23:28 / #16
  7. Оффлайн

    Krig

    Звание: Бывалый

    Знаток

    Сообщений: 188

    Создано тем: 7

    Рейтинг: 4

    Репа: (86|86|0)

    Баллы: 56

    Был: 2023-03-14 15:26

    Лайков: 82

    Вам нужно установить базы знаний. На странице проекта  в самом низу автор дал ссылку на облако с архивами баз и прочих сопутствующих библиотек.
    Все файлы (расширение .bin), включая исполняемый (Idr.exe) положить а одну папку.
    NNK_RTR нравится это сообщение.
    Сообщение отредактировал Krig 19 октября 2019 - 23:55
    19 октября 2019 - 23:43 / #17
  8. Онлайн

    Автор темы

    NNK_RTR

    Звание: Бывалый

    Команда сайта

    Сообщений: 310

    Создано тем: 53

    Рейтинг: 5

    Репа: (62|62|0)

    Баллы: 1951

    Был: 2024-07-27 07:49

    Лайков: 92

    СПАСИБО
    20 октября 2019 - 10:23 / #18

Статистика форума, пользователей онлайн: 0 (за последние 20 минут)

---
Создано тем
1183
Всего сообщений
15567
Пользователей
17900
Новый участник
mrSigarr