Войти

Показать полную графическую версию : BAT. Поочередное открытие группы файлов приложением.


SergMarkow
08-01-2014, 16:46
Доброго времени суток.
Прошу помочь составить bat-файл, если это возможно.
Требуется: найти в папках файл с расширением JPG, открыть его с помощью программы mspaint.exe, Сохранить под этим же именем и расширением JPG. Проделать эту операцию со всеми файлами JPG.

Сам цикл поиска JPG в текущей папке можно написать, например, так:
@Echo Off
SetLocal EnableExtensions

For %%A In ("*.jpg") Do Call :Func "%%~nxA"
exit /b

:Func
Set FileName=%~n1
%windir%\system32\mspaint.exe %FileName%
goto :eof

Но как создать процесс автоматического сохранения?

Iska
08-01-2014, 18:13
Но как создать процесс автоматического сохранения? »
В рамках заданной категории — никак.

А в чём глобальный смысл идеи открыть и сохранить файл?

SergMarkow
08-01-2014, 18:47
Если у Вас есть фотографии, сохраненные с фотокамеры с расширением JPG, проделайте такую операцию вручную с какой нибудь одной фотографией - она сожмется минимум в 2 раза без заметной потери качества, разрешение фотографии останется тем же. Никакие программы для сжатия полноцветной графики не дают таких результатов - только при условии потери качества или разрешения картинки. Причем способ такой не сработает на обычной картинке с интернета, только на фотографиях с фотокамеры.

SergMarkow
08-01-2014, 19:06
Iska, код, который я напечатал выше не работает с файлами, имена которых содержат пробелы. Как решить эту проблему?

Iska
08-01-2014, 20:44
проделайте такую операцию вручную с какой нибудь одной фотографией - она сожмется минимум в 2 раза без заметной потери качества, »
С потерей качества. Любое сохранение в jpg приводит к потере качества. Таков алгоритм.

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

Причем способ такой не сработает на обычной картинке с интернета, только на фотографиях с фотокамеры. »
Сработает. С любым изображением при его сохранении в jpg или иной подобный формат.


nconvert.exe из комплекта XnView:
@echo off
setlocal enableextensions enabledelayedexpansion

for %%i in (*.jpg) do "C:\Program Files\XnView\nconvert.exe" -out jpeg -overwrite -q 80 "%%i"

endlocal
exit /b 0

mwz
08-01-2014, 20:58
код, который я напечатал выше не работает с файлами, имена которых содержат пробелы. Как решить эту проблему? »

Имена файлов с пробелами необходимо заключать в кавычки.

Т.е. как минимум должно быть не просто %FileName%, а "%FileName%"

SergMarkow
08-01-2014, 21:18
С потерей качества. Любое сохранение в jpg приводит к потере качества. Таков алгоритм. »
Я не говорю о том, что качество не теряется, я говорю о том, что потеря качества незаметна визуально.
Проверьте на файле с расширением JPG, который можно скачать по ссылке ниже.
http://www.fayloobmennik.net/3473492
Откройте его в Paint.exe и просто сохраните. Увидите, что объем файла уменьшился примерно на 1 Мб. А теперь посмотрите на качество и сравните визуально с исходником. Даже при многократном увеличении фотографии разницы не видно, при этом объем файла заметно меньше.
Если получится другим способом сильнее сжать эту картинку с более высоким или таким же качеством, выложите, буду благодарен.

Мое предыдущее сообщение прошу во внимание не брать - вопрос решился добавлением кавычек.

mwz, благодарю.

Foreigner
08-01-2014, 21:55
-q 80 »
Даже без этого параметра исходное фото "сжимается" лучше чем пэинт.

mwz
08-01-2014, 21:58
Если получится другим способом »

Взгляните http://mwz-ru.homeserver.com/main/tests/DSC00136resampled.jpg -- 508 кил, и
http://mwz-ru.homeserver.com/main/tests/DSC00136resampled2.jpg -- 301 килобайт.
Кстати, из исходного фото непонятно -- это розы, или хлопок, или что ещё. Что и помогло сильно поджать с исходных 3 мегабайт. ;)

SergMarkow
08-01-2014, 22:37
Сжато хорошо, я могу сжать еще лучше, но потеряю качество.
mwz, теперь посмотрите как потеряли качество фотографии, выложенные Вами. Я просто увеличил один и тот же фрагмент на всех фотографиях.
http://www.fayloobmennik.net/3473651
Где какая фотография можно понять по названиям. Верхние две - оригинал и и фотография сжатая в Painte - изменения в качестве вообще не заметны (при этом разница в объеме в 1 Мб).
Нижние две, это фотографии, скачанные по ссылкам
Взгляните http://mwz-ru.homeserver.com/main/te...6resampled.jpg -- 508 кил, и
http://mwz-ru.homeserver.com/main/te...resampled2.jpg -- 301 килобайт. »
Потеря качества очень существенна, мало того, даже форма бутона теряется и частично замещается зеленым цветом.

mwz
08-01-2014, 23:34
Потеря качества очень существенна »

Ну всё же 6 и тем более 10 крат для JPG -- величина, мягко говоря, немалая... Использовался IrfanView с плагином, позволяющим сохранить результат в файл заданного размера.
Кстати, все погрешности преобразований зрительно выплывают при вычитании конечного изображения из исходного (практически реализуется суммированием второго с инверсным первым).

Iska
09-01-2014, 08:15
Я не говорю о том, что качество не теряется, я говорю о том, что потеря качества незаметна визуально.
Проверьте на файле с расширением JPG, который можно скачать по ссылке ниже.
http://www.fayloobmennik.net/3473492
Откройте его в Paint.exe и просто сохраните. Увидите, что объем файла уменьшился примерно на 1 Мб. А теперь посмотрите на качество и сравните визуально с исходником. Даже при многократном увеличении фотографии разницы не видно, при этом объем файла заметно меньше.
Если получится другим способом сильнее сжать эту картинку с более высоким или таким же качеством, выложите, буду благодарен. »
Коллега, Вы строите выводы на неверных исходных предпосылках. Возьмите какую-нибудь литературу по форматам JPEG/MPEG и прочтите.

Что касается качества — у Вас в исходном изображении (http://www.oszone.net/go.php?url=http://www.fayloobmennik.net/3473492) — сжимай его, не сжимай — качества ноль.

mwz, теперь посмотрите как потеряли качество фотографии, выложенные Вами. Я просто увеличил один и тот же фрагмент на всех фотографиях. … Потеря качества очень существенна, мало того, даже форма бутона теряется и частично замещается зеленым цветом. »
Прочтите литературу по формату JPEG. Особливо насчёт того, на чём основано сжатие на основе потери качества.

Я уже говорил, выше, что качество исходного изображения просто отвратительно. Если Вам не нравится использованный в примере коллеги mwz сэмплинг/дискретизация, задавайте его сами.

Вот так я сжал Ваше изображение практически втрое:
"%ProgramFiles%\XnView\nconvert.exe" -out jpeg -overwrite -q 80 DSC00136.JPG

Вот так:
"%ProgramFiles%\XnView\nconvert.exe" -out jpeg -overwrite -subsampling 2 -q 80 DSC00136.JPG
— с принудительным указанием минимального размера сэмплинга — более чем в полтора раза.

Вот так:
"%ProgramFiles%\XnView\nconvert.exe" -out jpeg -overwrite -subsampling 2 DSC00136.JPG
— с принудительным указанием минимального размера сэмплинга и без указания уменьшения качества — почти в полтора раза.

P.S. Ещё раз напоминаю о настоятельной необходимости прочтения литературы. Многие вопросы отпадут.

SergMarkow
09-01-2014, 19:44
Iska, не понимаю Вашу агрессию. Тема моего вопроса не касается сжатия изображений, у меня нет никаких вопросов по сжатию JPG и я их не задавал. Соответственно Ваше напоминание о настоятельной необходимости прочтения литературы считаю неуместным - напоминайте другим.

P.S. Возьму Ваш стиль общения на форуме на вооружение и отвечу на Ваше неверные утверждения.

Коллега, Вы строите выводы на неверных исходных предпосылках. »

Ни в одном моем сообщении нет выводов - Ваше утверждение неверно.

Что касается качества — у Вас в исходном изображении — сжимай его, не сжимай — качества ноль. »
Снова неверно. Качество изображения ноль - это как? Некорректно, бессмысленно и, снова, неверно.

Если Вам не нравится использованный в примере коллеги mwz сэмплинг/дискретизация, задавайте его сами. »
Я ничего не печатал о том - нравится или не нравится. Я произвел сравнение и выложил на форум. Снова Ваше утверждение неверно.

Подведем итог: из всех сообщений и ответов актуальным теме вопроса считаю только первое сообщение.
В рамках заданной категории — никак.
А в чём глобальный смысл идеи открыть и сохранить файл? »

Считаю Ваш ответ исчерпывающим и предлагаю закрыть тему.

Iska
09-01-2014, 22:11
Iska, не понимаю Вашу агрессию. »
Это не агрессия.

Тема моего вопроса не касается сжатия изображений, »
Не касается, а является им (сжатием).

у меня нет никаких вопросов по сжатию JPG и я их не задавал. »
Вы их не задавали. Вы задавали иные, вида: «Дурак, ты пальцем покажи».

Соответственно Ваше напоминание о настоятельной необходимости прочтения литературы считаю неуместным »
А теперь — ещё и обязательным.

напоминайте другим. »
И другим напомню, буде нужда в том.

Ни в одном моем сообщении нет выводов - Ваше утверждение неверно. »
Да, ну? Я не говорю о знаниях — Вы их получать не желаете. Вы уже сделали для себя выводы. Теперь хотите выполнить некие действия, основанные на этих выводах. То, что они не верны, Вам неважно — Вы будете упорно настаивать на своём: «Кто придумал, что Земля вращается вокруг Солнца? Я вижу, что происходит совсем наоборот. И точка!»

Снова неверно. Качество изображения ноль - это как? Некорректно, бессмысленно и, снова, неверно. »
Согласен. Некорректно. Сформулирую иначе: «Качество исходного изображения уже изначально отвратительно. Посему говорить о каких-то потерях качества при сжатии не имеет смысла.».

Я ничего не печатал о том - нравится или не нравится. Я произвел сравнение и выложил на форум. Снова Ваше утверждение неверно. »
А я Вам предложил выбрать подходящий Вам, именно Вам вариант. Очевидно три строки кода прошли мимо Вашего внимания, если Вы их не увидели.

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




© OSzone.net 2001-2012