Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Обрезка картинки

Ответить
Настройки темы
CMD/BAT - [решено] Обрезка картинки

Ветеран


Сообщения: 2183
Благодарности: 721


Конфигурация

Профиль | Отправить PM | Цитировать


Можно ли с помощью bat или сторонних программ обрезать края картинок jpg, расположенных "c:\WINDOWS\Web\Wallpaper\" до пропорций установленного разрешения экрана?

Отправлено: 15:50, 04-05-2012

 

Ветеран


Сообщения: 2183
Благодарности: 721

Профиль | Отправить PM | Цитировать


kiripanda, условием задачи было определение установленного разрешения экрана и образка краёв картинки до пропорций этого разрешения. Настройка свойств экрана - фоновый рисунок растянут.
Это сообщение посчитали полезным следующие участники:

Отправлено: 11:06, 10-05-2012 | #21



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Старожил


Сообщения: 352
Благодарности: 119

Профиль | Отправить PM | Цитировать


Del

Последний раз редактировалось kiripanda, 10-05-2012 в 14:38.


Отправлено: 12:38, 10-05-2012 | #22


Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


kiripanda, не то.

1. В приведённом Вами коде изображение обрезается, невзирая на его собственные размеры, до размеров экрана. А надо — а) согласно его собственным размерам и б) пропорционально размерам экрана.

2. Изображение может быть меньше размеров экрана.

Отправлено: 13:09, 10-05-2012 | #23


Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


kiripanda, зачем «Del»? Статься, кому-нибудь именно Ваш вариант бы и пригодился.
Это сообщение посчитали полезным следующие участники:

Отправлено: 16:55, 10-05-2012 | #24


Старожил


Сообщения: 352
Благодарности: 119

Профиль | Отправить PM | Цитировать


Код: Выделить весь код
@echo off &setlocal enabledelayedexpansion

set in=z:\sklad\
set out=c:\windows\Web\Wallpaper\
set i_view=i_view32.exe

for /f %%s in ('wmic DesktopMonitor get ScreenHeight^,ScreenWidth /value ^|find "="') do set "%%s"
for /f "delims=" %%f in ('dir /b/a-d/s %in%\*.jpg') do (
	title "%%f"
	%i_view% "%%f" /info=%temp%\info.tmp
	for /f "tokens=4,6" %%x in ('type %temp%\info.tmp ^|find "Image dimensions"') do (
		set /a newx=%%x*%ScreenHeight%/%%y &set /a newy=%%y*%ScreenWidth%/%%x
		if "!newy!" GEQ "%ScreenHeight%" %i_view% "%%f" /resize_long=%ScreenWidth% /aspectratio /resample /convert=temp.bmp
		if "!newx!" GEQ "%ScreenWidth%" %i_view% "%%f" /resize_short=%ScreenHeight% /aspectratio /resample /convert=temp.bmp
		%i_view% %in%\temp.bmp /info=%temp%\info.tmp
		for /f "tokens=4,6" %%x in ('type %temp%\info.tmp ^|find "Image dimensions"') do (
			if "%%y" GTR "%ScreenHeight%" (
				set /a starty=^(%%y-%ScreenHeight%^)/2
				%i_view% %in%\temp.bmp /crop=^(0,!starty!,%ScreenWidth%,%ScreenHeight%^) /jpgq=90 /convert=%out%\%%~nf.jpg
			)
			if "%%x" GEQ "%ScreenWidth%" (
				set /a startx=^(%%x-%ScreenWidth%^)/2
				%i_view% %in%\temp.bmp /crop=^(!startx!,0,%ScreenWidth%,%ScreenHeight%^) /jpgq=90 /convert=%out%\%%~nf.jpg
			)
		)
	)
)
del /q %temp%\info.tmp %in%\temp.bmp

Отправлено: 17:19, 10-05-2012 | #25


Ветеран


Сообщения: 2183
Благодарности: 721

Профиль | Отправить PM | Цитировать


kiripanda, попробовал скрипт, ошибка
читать дальше »

в скрипте изменил только путь к папке sklad

Отправлено: 20:30, 10-05-2012 | #26


Старожил


Сообщения: 352
Благодарности: 119

Профиль | Отправить PM | Цитировать


попробуй указать полный путь к i_view32.exe

Отправлено: 20:48, 10-05-2012 | #27


Ветеран


Сообщения: 2183
Благодарности: 721

Профиль | Отправить PM | Цитировать


Цитата kiripanda:
попробуй указать полный путь к i_view32.exe »
аналогичная ошибка.
читать дальше »

Пробовал указать полный путь как к директории установки i_view, так и отдельно к папке с батником и копией i_view32.exe

Отправлено: 21:22, 10-05-2012 | #28


Старожил


Сообщения: 352
Благодарности: 119

Профиль | Отправить PM | Цитировать


in и out если уж брать в кавычки, то
set "in=z:\sklad\"
set "out=c:\windows\Web\Wallpaper\"

Отправлено: 22:10, 10-05-2012 | #29


Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


kiripanda, новый код так же масштабирует изображения к разрешению экрана вместо простого обрезания краёв сверху или снизу. Также изображения, у которых высота больше ширины, становятся банально квадратными со стороной, равной высоте экрана — т.е. недостаточно урезаются по высоте.

sov44, так мой код заработал у Вас после установки библиотеки?

Отправлено: 22:48, 10-05-2012 | #30



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Обрезка картинки

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Графика - обрезка пустых краев изображения nmn Программное обеспечение Windows 4 26-08-2010 18:25
.NET - [решено] CroppedBitmap. Обрезка изображения. Casper-SC Программирование и базы данных 1 21-08-2010 10:23
Прочие - Нужна программа, что бы заливать картинки в чаты, а не ссылки на картинки Clever fellow Программное обеспечение Windows 2 18-02-2010 17:22
Обрезка AVI Евгешка Видео и аудио: обработка и кодирование 5 31-03-2008 20:37




 
Переход