Показать полную графическую версию : Изменение размера изображений *.png; *.jpg; *.jpeg; *.bmp
Доброго времени суток!
Есть много изображений (с расширениями: *.png; *.jpg; *.jpeg; *.bmp) в D:\Test, которая содержит много подкаталогов, в которых содержатся тоже изображения.
Необходимо уменьшить все изображения путем изменения размера в пикселях сохраняя пропорцию. А так же не изменять размер, если исходных размер меньше нового и если размер изображения не изменяется, то с файлом ничего делать не нужно.
Выходной папкой будет являться каталог с исходными файлами. Имена должны быть так же сохранены.
Подойдёт любой язык. Главное чтобы выполнял свою задачу.
Подсобите пожалуйста командой, скриптом.
Выходной папкой будет являться каталог с исходными файлами. Имена должны быть так же сохранены. »
Это как?
уменьшить все изображения путем изменения размера в пикселях сохраняя пропорцию. »
Как именно уменьшить?
Скажу сразу, вам понадобится ImageMagick с параметрами.
Это как? »
Путем замены.
Как именно уменьшить? »
Можно подробнее вопрос?
Необходимо уменьшить все изображения путем изменения размера в пикселях сохраняя пропорцию. А так же не изменять размер, если исходных размер меньше нового и если размер изображения не изменяется, то с файлом ничего делать не нужно.
Аналогичные действия делает программа FSViewer. Но она не очень удобна.
Можно подробнее вопрос? »
Вот есть у нас два изображения, одно 1000x2000, другое 2000x1000. К какому «размеру в пикселях» их надо привести?
Аналогичные действия делает программа FSViewer. »
И умеет:
А так же не изменять размер, если исходных размер меньше нового
?
Вот есть у нас два изображения, одно 1000x2000, другое 2000x1000. К какому «размеру в пикселях» их надо привести? »
1000x2000 = 768хN
2000x1000 = 1024xN
И умеет: »
Умеет (скриншот во вложении).
1000x2000 = 768хN
2000x1000 = 1024xN »
У Вас тут явно в одном месте высота с шириной попутаны ;).
Пробуйте:
@echo off
setlocal enableextensions enabledelayedexpansion
set sSourceFolder=%~1
if defined sSourceFolder (
2>nul pushd "%sSourceFolder%" && (
for /f "usebackq delims=" %%i in (
`2^>nul dir /b /a:-d "*.png" "*.jpg" "*.jpeg" "*.bmp"`
) do (
echo [%%~i]
magick.exe "%%~i" -resize 1024x768^> "%%~i"
)
popd
) || (
echo Can't change current folder to [%sSourceFolder%]
exit /b 2
)
) else (
echo Usage: %~nx0 ^<Source folder^>
exit /b 1
)
endlocal
exit /b 0
Путь к исходному каталогу указывается аргументом пакетного файла (также можно просто перетащить папку на пакетный файл в Проводнике).
Для работы Вам потребуется загрузить и установить ImageMagick (если только у Вас не полиграфия — берите либо ImageMagick-7.0.8-16-Q8-x64-static.exe, либо ImageMagick-7.0.8-16-Q8-x86-static.exe в зависимости от разрядности Вашей ОС) отсюда: Download @ ImageMagick, Windows Binary Release (https://www.imagemagick.org/script/download.php#windows).
P.S. Разумеется, изначально «потренируйтесь на кошках».
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.