Moth - сжатие изображений без потерь
Цитата: Cronos от 08.09.2023, 20:25Цитата: Александр от 08.09.2023, 03:08Хотелось бы фидбек по обновлениям получить.
Jeddi Rodnulkin, теперь отступ от панели задач корректно работает?
Cronos, крестик работает нормально, зависания разблокирует, очередь чистит, всё как ожидалось?
По поводу "очень не удобно" - я думал наоборот сделал очень удобно, что теперь окно можно растягивать и работать с большими списками)
Возможно вам с Александром для сотен файлов больше подойдёт какие-то классические утилиты с похожим функционалом типа FileOptimizerДа вроде пока норм всё,
У меня есть идея как можно реализовать фичу с более 100 картинок. Что если подойти к вопросу с другой стороны и встроить Drag and Drop? Ну или кнопку + в само окошко, чтобы можно было докидывать файлы.
Цитата: Александр от 08.09.2023, 03:08Хотелось бы фидбек по обновлениям получить.
Jeddi Rodnulkin, теперь отступ от панели задач корректно работает?
Cronos, крестик работает нормально, зависания разблокирует, очередь чистит, всё как ожидалось?
По поводу "очень не удобно" - я думал наоборот сделал очень удобно, что теперь окно можно растягивать и работать с большими списками)
Возможно вам с Александром для сотен файлов больше подойдёт какие-то классические утилиты с похожим функционалом типа FileOptimizer
Да вроде пока норм всё,
У меня есть идея как можно реализовать фичу с более 100 картинок. Что если подойти к вопросу с другой стороны и встроить Drag and Drop? Ну или кнопку + в само окошко, чтобы можно было докидывать файлы.
Цитата: Devint от 09.09.2023, 19:35Добрый день, огромное спасибо за программу!
Добрый день, огромное спасибо за программу!
Цитата: Devint от 09.09.2023, 23:09Подскажите, а можно как-то добавить в контекстное меню программу, если множественно выделяю через everything? Или как предложение, если принимаются, сделать ключ строки, чтобы в нём передавать список путей файлов нужных)
Подскажите, а можно как-то добавить в контекстное меню программу, если множественно выделяю через everything? Или как предложение, если принимаются, сделать ключ строки, чтобы в нём передавать список путей файлов нужных)
Цитата: Devint от 10.09.2023, 00:32Также пришло в голову:
- Сделать в контекстном меню пункт при клике на папку тоже. При этом будут обрабатываться все картинки внутри. Как у Win10Tweaker сделано с удалением содержимого папки.
- Добавить настройку замены файлов при типах сжатия отличных от lossles (Полезно, если задача стоит сжать множество картинок, но оставить исходные названия).
Также пришло в голову:
- Сделать в контекстном меню пункт при клике на папку тоже. При этом будут обрабатываться все картинки внутри. Как у Win10Tweaker сделано с удалением содержимого папки.
- Добавить настройку замены файлов при типах сжатия отличных от lossles (Полезно, если задача стоит сжать множество картинок, но оставить исходные названия).
Цитата: ЯR от 10.09.2023, 01:07Devint, приветствую.
Цитата: Devint от 09.09.2023, 23:09Подскажите, а можно как-то добавить в контекстное меню программу, если множественно выделяю через everything? Или как предложение, если принимаются, сделать ключ строки, чтобы в нём передавать список путей файлов нужных)
Интересно, если выделено более одного файла, то Everything не отображает шелл-команды из SystemFileAssociations. Аналогичная картина и с другими утилитами, прописанными в этой области реестра, например MediaInfo, Загрузить на Imgur и др.
Судя по всему, это ограничение самого Everything.
Devint, приветствую.
Цитата: Devint от 09.09.2023, 23:09Подскажите, а можно как-то добавить в контекстное меню программу, если множественно выделяю через everything? Или как предложение, если принимаются, сделать ключ строки, чтобы в нём передавать список путей файлов нужных)
Интересно, если выделено более одного файла, то Everything не отображает шелл-команды из SystemFileAssociations. Аналогичная картина и с другими утилитами, прописанными в этой области реестра, например MediaInfo, Загрузить на Imgur и др.
Судя по всему, это ограничение самого Everything.
Цитата: Devint от 12.09.2023, 21:11Добрый день, накидал программку, которая пихает в очередь Moth'а [simple_tooltip content='Доходит до 999, после ждет завершения и снова кидает в очередь']любое количество[/simple_tooltip] файлов, также имеет настройку авто удаления оригиналов для лосси и веб.
Можно кинуть папку с различными файлами на поле, отфильтрует только изображения.Если автор не против, [simple_tooltip content='Пока развивается программа и добавляются новые функции, уверен потом этот костыль будет не нужен🙂']могу поделиться[/simple_tooltip].
Добрый день, накидал программку, которая пихает в очередь Moth'а любое количество файлов, также имеет настройку авто удаления оригиналов для лосси и веб.
Можно кинуть папку с различными файлами на поле, отфильтрует только изображения.
Если автор не против, могу поделиться.
Цитата: Александр от 12.09.2023, 21:49Привет, народ)
Devint, я сообщения читаю, все предложения разумные, согласен что и для папки надо сделать (опционально) и Drag and Drop лишним не будет.
Мне приятно что ты (надеюсь не против, что на 'ты') запарился и сделал обертку для Moth. По поводу Everything - явно похоже на ограничение самой программы, мы его обойдем когда Moth появится в меню папки.Последние дни пытаюсь обойти ограничение в 100 файлов через IDropTarget, пока нихрена не получилось)
Плюс понял как избавится от половины временных файлов, чтобы уменьшить нагрузку на диск, тоже еще не сделано.В Moth фильтр встроен, если выделить кучу файлов и среди них будет неподдерживаемый, то он будет пропущен.
Думаю, чтобы тебе не пользоваться костылями, заведу Config.ini, чтобы можно было быстро ручками настраивать пункты меню и перезапись файлов. И добавлю Moth в контекстное меню для папок. Всё это вроде не долго. Config.ini давно напрашивался, его относительно не сложно добавить, а вот гуишку сверстать, которая будет его настраивать это не быстро.
Спасибо за мотивацию, постараюсь не затягивать. Я не против, если кто-то будет пользоваться программкой от Devint, каждый сам для себя решает.
Привет, народ)
Devint, я сообщения читаю, все предложения разумные, согласен что и для папки надо сделать (опционально) и Drag and Drop лишним не будет.
Мне приятно что ты (надеюсь не против, что на 'ты') запарился и сделал обертку для Moth. По поводу Everything - явно похоже на ограничение самой программы, мы его обойдем когда Moth появится в меню папки.
Последние дни пытаюсь обойти ограничение в 100 файлов через IDropTarget, пока нихрена не получилось)
Плюс понял как избавится от половины временных файлов, чтобы уменьшить нагрузку на диск, тоже еще не сделано.
В Moth фильтр встроен, если выделить кучу файлов и среди них будет неподдерживаемый, то он будет пропущен.
Думаю, чтобы тебе не пользоваться костылями, заведу Config.ini, чтобы можно было быстро ручками настраивать пункты меню и перезапись файлов. И добавлю Moth в контекстное меню для папок. Всё это вроде не долго. Config.ini давно напрашивался, его относительно не сложно добавить, а вот гуишку сверстать, которая будет его настраивать это не быстро.
Спасибо за мотивацию, постараюсь не затягивать. Я не против, если кто-то будет пользоваться программкой от Devint, каждый сам для себя решает.
Цитата: Devint от 12.09.2023, 22:54Ещё предложение добавить общий "выигранный" размер обработанных изображений.
Ещё предложение добавить общий "выигранный" размер обработанных изображений.
Цитата: Александр от 12.09.2023, 23:37Про сохранение EXIF данных я не забыл, тоже можно будет задать в настройках.
Про выводить общий размер сжатия я думал, только оно не очень укладывается в функционал, ты же можешь и конвертировать в другой формат, и разрешение увеличивать в 2 раза - где корректно, что файл будет получаться размером больше. Вроде очевидно, что надо считать только размеры при действиях со сжатием, вот как наглядно это отобразить чтобы пользователю стало очевидно, что так считается, мне не понятно.
Про сохранение EXIF данных я не забыл, тоже можно будет задать в настройках.
Про выводить общий размер сжатия я думал, только оно не очень укладывается в функционал, ты же можешь и конвертировать в другой формат, и разрешение увеличивать в 2 раза - где корректно, что файл будет получаться размером больше. Вроде очевидно, что надо считать только размеры при действиях со сжатием, вот как наглядно это отобразить чтобы пользователю стало очевидно, что так считается, мне не понятно.
Цитата: Александр от 14.09.2023, 18:52Цитата: Devint от 12.09.2023, 21:11Если автор не против, [simple_tooltip content='Пока развивается программа и добавляются новые функции, уверен потом этот костыль будет не нужен
']могу поделиться[/simple_tooltip].
Привет. Поделись, пожалуйста.
Цитата: Devint от 12.09.2023, 21:11Если автор не против, могу поделиться.
Привет. Поделись, пожалуйста.
Цитата: Александр от 16.09.2023, 09:57Цитата: Devint от 14.09.2023, 19:23Спасибо.
Вижу уже 21 пользователь скачал программу. Только у меня возникла ошибка при попытке указать путь к лаунчеру?
[spoilertitle="код ошибки"]Подробная информация об использовании оперативной
(JIT) отладки вместо данного диалогового
окна содержится в конце этого сообщения.************** Текст исключения **************
System.ArgumentException: Указана недопустимая строка фильтра. Строка фильтра должна содержать описание фильтра, за которым следуют вертикальная черта (|) и шаблон фильтра. Строки различных вариантов фильтра также должны разделяться вертикальной чертой. Например: "Текстовые файлы (*.txt)|*.txt|Все файлы (*.*)|*.*"
в System.Windows.Forms.FileDialog.set_Filter(String value)
в WindowsFormsApp1.Form1.button2_Click(Object sender, EventArgs e)
в System.Windows.Forms.Control.OnClick(EventArgs e)
в System.Windows.Forms.Button.OnClick(EventArgs e)
в System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
в System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
в System.Windows.Forms.Control.WndProc(Message& m)
в System.Windows.Forms.ButtonBase.WndProc(Message& m)
в System.Windows.Forms.Button.WndProc(Message& m)
в System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
в System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
в System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)************** Загруженные сборки **************
mscorlib
Версия сборки: 4.0.0.0
Версия Win32: 4.8.9037.0 built by: NET481REL1
CodeBase: file:///C:/Windows/Microsoft.NET/Framework/v4.0.30319/mscorlib.dll
----------------------------------------
MothHelper
Версия сборки: 1.0.0.0
Версия Win32: 1.0.0.0
CodeBase: file:///F:/Program%20Files/Program/Portable/MothPortable_3/MothHelper.exe
----------------------------------------
System.Windows.Forms
Версия сборки: 4.0.0.0
Версия Win32: 4.8.9037.0 built by: NET481REL1
CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms/v4.0_4.0.0.0__b77a5c561934e089/System.Windows.Forms.dll
----------------------------------------
System
Версия сборки: 4.0.0.0
Версия Win32: 4.8.9037.0 built by: NET481REL1
CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System/v4.0_4.0.0.0__b77a5c561934e089/System.dll
----------------------------------------
System.Drawing
Версия сборки: 4.0.0.0
Версия Win32: 4.8.9037.0 built by: NET481REL1
CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Drawing/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll
----------------------------------------
System.Configuration
Версия сборки: 4.0.0.0
Версия Win32: 4.8.9037.0 built by: NET481REL1
CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Configuration/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Configuration.dll
----------------------------------------
System.Core
Версия сборки: 4.0.0.0
Версия Win32: 4.8.9037.0 built by: NET481REL1
CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Core/v4.0_4.0.0.0__b77a5c561934e089/System.Core.dll
----------------------------------------
System.Xml
Версия сборки: 4.0.0.0
Версия Win32: 4.8.9037.0 built by: NET481REL1
CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Xml/v4.0_4.0.0.0__b77a5c561934e089/System.Xml.dll
----------------------------------------
Accessibility
Версия сборки: 4.0.0.0
Версия Win32: 4.8.9037.0 built by: NET481REL1
CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/Accessibility/v4.0_4.0.0.0__b03f5f7f11d50a3a/Accessibility.dll
----------------------------------------
System.Windows.Forms.resources
Версия сборки: 4.0.0.0
Версия Win32: 4.8.4084.0 built by: NET48REL1
CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms.resources/v4.0_4.0.0.0_ru_b77a5c561934e089/System.Windows.Forms.resources.dll
----------------------------------------
mscorlib.resources
Версия сборки: 4.0.0.0
Версия Win32: 4.8.4084.0 built by: NET48REL1
CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/mscorlib.resources/v4.0_4.0.0.0_ru_b77a5c561934e089/mscorlib.resources.dll
----------------------------------------************** Оперативная отладка (JIT) **************
Для подключения оперативной (JIT) отладки файл .config данного
приложения или компьютера (machine.config) должен иметь
значение jitDebugging, установленное в секции system.windows.forms.
Приложение также должно быть скомпилировано с включенной
отладкой.Например:
<configuration>
<system.windows.forms jitDebugging="true" />
</configuration>При включенной отладке JIT любое необрабатываемое исключение
пересылается отладчику JIT, зарегистрированному на данном компьютере,
вместо того чтобы обрабатываться данным диалоговым окном.[/spoiler]Переустановил .NET Framework 4.0 , .NET Framework 4.8 , .NET Framework 4.8.1 ошибка не пропала
Цитата: Devint от 14.09.2023, 19:23
Спасибо.
Вижу уже 21 пользователь скачал программу. Только у меня возникла ошибка при попытке указать путь к лаунчеру?
(JIT) отладки вместо данного диалогового
окна содержится в конце этого сообщения.
************** Текст исключения **************
System.ArgumentException: Указана недопустимая строка фильтра. Строка фильтра должна содержать описание фильтра, за которым следуют вертикальная черта (|) и шаблон фильтра. Строки различных вариантов фильтра также должны разделяться вертикальной чертой. Например: "Текстовые файлы (*.txt)|*.txt|Все файлы (*.*)|*.*"
в System.Windows.Forms.FileDialog.set_Filter(String value)
в WindowsFormsApp1.Form1.button2_Click(Object sender, EventArgs e)
в System.Windows.Forms.Control.OnClick(EventArgs e)
в System.Windows.Forms.Button.OnClick(EventArgs e)
в System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
в System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
в System.Windows.Forms.Control.WndProc(Message& m)
в System.Windows.Forms.ButtonBase.WndProc(Message& m)
в System.Windows.Forms.Button.WndProc(Message& m)
в System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
в System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
в System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
************** Загруженные сборки **************
mscorlib
Версия сборки: 4.0.0.0
Версия Win32: 4.8.9037.0 built by: NET481REL1
CodeBase: file:///C:/Windows/Microsoft.NET/Framework/v4.0.30319/mscorlib.dll
----------------------------------------
MothHelper
Версия сборки: 1.0.0.0
Версия Win32: 1.0.0.0
CodeBase: file:///F:/Program%20Files/Program/Portable/MothPortable_3/MothHelper.exe
----------------------------------------
System.Windows.Forms
Версия сборки: 4.0.0.0
Версия Win32: 4.8.9037.0 built by: NET481REL1
CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms/v4.0_4.0.0.0__b77a5c561934e089/System.Windows.Forms.dll
----------------------------------------
System
Версия сборки: 4.0.0.0
Версия Win32: 4.8.9037.0 built by: NET481REL1
CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System/v4.0_4.0.0.0__b77a5c561934e089/System.dll
----------------------------------------
System.Drawing
Версия сборки: 4.0.0.0
Версия Win32: 4.8.9037.0 built by: NET481REL1
CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Drawing/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll
----------------------------------------
System.Configuration
Версия сборки: 4.0.0.0
Версия Win32: 4.8.9037.0 built by: NET481REL1
CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Configuration/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Configuration.dll
----------------------------------------
System.Core
Версия сборки: 4.0.0.0
Версия Win32: 4.8.9037.0 built by: NET481REL1
CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Core/v4.0_4.0.0.0__b77a5c561934e089/System.Core.dll
----------------------------------------
System.Xml
Версия сборки: 4.0.0.0
Версия Win32: 4.8.9037.0 built by: NET481REL1
CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Xml/v4.0_4.0.0.0__b77a5c561934e089/System.Xml.dll
----------------------------------------
Accessibility
Версия сборки: 4.0.0.0
Версия Win32: 4.8.9037.0 built by: NET481REL1
CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/Accessibility/v4.0_4.0.0.0__b03f5f7f11d50a3a/Accessibility.dll
----------------------------------------
System.Windows.Forms.resources
Версия сборки: 4.0.0.0
Версия Win32: 4.8.4084.0 built by: NET48REL1
CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms.resources/v4.0_4.0.0.0_ru_b77a5c561934e089/System.Windows.Forms.resources.dll
----------------------------------------
mscorlib.resources
Версия сборки: 4.0.0.0
Версия Win32: 4.8.4084.0 built by: NET48REL1
CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/mscorlib.resources/v4.0_4.0.0.0_ru_b77a5c561934e089/mscorlib.resources.dll
----------------------------------------
************** Оперативная отладка (JIT) **************
Для подключения оперативной (JIT) отладки файл .config данного
приложения или компьютера (machine.config) должен иметь
значение jitDebugging, установленное в секции system.windows.forms.
Приложение также должно быть скомпилировано с включенной
отладкой.
Например:
<configuration>
<system.windows.forms jitDebugging="true" />
</configuration>
При включенной отладке JIT любое необрабатываемое исключение
пересылается отладчику JIT, зарегистрированному на данном компьютере,
вместо того чтобы обрабатываться данным диалоговым окном.
Переустановил .NET Framework 4.0 , .NET Framework 4.8 , .NET Framework 4.8.1 ошибка не пропала
Цитата: Devint от 16.09.2023, 10:08Александр, Действительно, моя ошибка, извините. Вот исправленная версия: upload.ee
Александр, Действительно, моя ошибка, извините. Вот исправленная версия: upload.ee