![]() |
скрипт рекурсивного изменения размера изображений
имеем папку с папками(тысячи) в которых лежат tifы
данные тифы получены путём сканирования с определенными параметрами Скрытый текст
<ImagePath Path="\\10.xx.xx.xx\scan\" ViewingPath="C:\Program Files\IrfanView\i_view32.exe" FileExt="tif" ScanParams="/scan /dpi=(300,300) /convert=%2:S" ConvertToSave="%1:S /resize_short=800 /resample /aspectratio /dpi=(300,300) /bpp=4 /jpgq=40 /tifc=7 /convert=%2:S" ConvertToTIF="1:S /convert=%2:S" AppendToTIF="%1:S /append=%2:S /silent /killmesoftly"/> через IrfanView, обычно они имеют размер 800*1100(может варьироваться +- т.е. 1098 1200) и физический размер 150-400 кб но где то произошла ошибка и размеры тифов получились 2552*3508 и физически на 25 м каждый помогите скриптом который пройдется по всем вложенным папкам (их по идее одна рекурсия) и скорректирует размер тифов до 800*(соотношение стороны) |
и глубина цвета должна быть 4 а получились 24
|
batyaPS, не очень понятно с некоторыми деталями. В частности непонятно, где ширина, а где высота в:
Цитата:
Цитата:
|
Цитата:
выложил https://yadi.sk/d/9Lo45cmUe4YGM можно дабы сильно не нагружать систему не все файлы проверять а допустим с фильтром по размеру, к примеру от 5 мб |
есть нюанс, некоторые тифы многостраничные (я там на яндексе прикрепил файл на 37 метров) это нормально, у них разрешение 800*1100
их по идее трогать не нужно. |
batyaPS, Я бы попробовал nconvert
Код:
@echo off Код:
nconvert -ratio -resize 800 -overwrite ... Код:
nconvert -help | more |
Foreigner, спасибо конечно за наводку, но боюсь я сам не докумекую как реализовать
|
хотя что бы особо не усложнять скрипт можно все файлы рекурсивно перегнать в 800*1100 в черно-белое
|
batyaPS, Ну так попробуйте разные варианты nconvert (приведены выше)
Код:
@echo off |
batyaPS, А так не пойдёт? Семь бесплатных программ для пакетной обработки графических файлов
|
yurfed, они с рекурсией не работают
|
Цитата:
$.iColors - кол-во цветов (256, 216, 128, 64, 32, 16 или 8) ? единственное конечно он оставляет из многостраничного тифа только первую страницу это реально побороть ? хотя бы что бы пропускал |
batyaPS,
Добавь -colors 4: Код:
@echo off |
в описании нашел ключ -page которым можно выбирать какую страницу в тифе отредактировать, но не как не найду как применить к всем страницам файла, т.е. что то типа -page all или -page * такие варианты не работают, понял только то что нумерация в софтине с 0 а не как в файле с 1
|
Цитата:
|
Цитата:
требуется не выбирая каждую папку или файлы произвести конвертирование всех файлов http://soft.oszone.net/program/16197...d_TIFF_Editor/ справиться с задачей в триальном режиме(кстати какие ограничения ? водяной знак не накладывает)? |
Цитата:
Цитата:
|
Цитата:
в настройках нет возможности задать разрешение, только процентное соотношение формат файла не соблюдает, т.е. было tif а создала tiff Advanced TIFF Editor 3.7.6.24 c многостраничными справляется, но при групповой обработке нет возможности выставить разрешение. |
FSResizer33 отлично отработала
единственное что в ней не хватает, это перевод изображения в оттенки серого. скрипт Код:
for /d /r "Z:\1" %%i in (*) do nconvert -grey 16 -colors 4 -resize 800 1100 -overwrite "%%i\*.tif" |
скрипт справляется с 29000 файлов быстрее.
|
Подскажите с написанием скрипта.
Нужно запустить батник рядом с папками с графическими файлами (например jpg) разного размера, чтобы на выходе получились новые папки с файлами jpg пропорционально уменьшенными до 1 мб. Или как вариант, скрипт vbs, на который можно перетаскивать папки с файлами для их обработки. п.с. с ключами nconvert не разобрался. |
sov44, Уменьшить размер файла можно без ресайза. Как уменьшить размеры изображения с привязкой к размеру файла не нашел:
Код:
nconvert -max_filesize 1048576 file.jpg |
Foreigner, всё равно размер становится больше 1 мб. :(
Проблема в том, что нужно по интернету на сервер заливать файлы размером не более 1 Мб. Приходится править ручками размер ( я использую FastStone Image Viewer), что довольно утомительно. Цитата:
Код:
:: изменить пропорционально по ширине, 1000 |
тогда вероятно проблема в сервере который хочет видеть именно мегабайт, а не мебибайт. В уже указанной Foreigner строке исправь 1048576 на 1000000
|
Время: 16:05. |
Время: 16:05.
© OSzone.net 2001-