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

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [решено] Есть папка с большим количеством jpeg файлов, надо сохранить файлы как .bmp

Ответить
Настройки темы
[решено] Есть папка с большим количеством jpeg файлов, надо сохранить файлы как .bmp

Старожил


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

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


Добрый день! Есть папка с большим количеством jpeg файлов, надо копирнуть папку и сохранить файлы как .bmp.
Я столкнулся с проблемой при решении такой задачи. Поначалу думал сделать так:
1) копирнуть папку
2) вызвать paint через $obj=objcreate()
3) в $obj по очереди подгружать файлы и сохранять их как бмп.
Но мне сказали, что пэинт нельзя создать через objcreate(), другого варианта решения не вижу... а он наверняка есть

Отправлено: 19:27, 30-09-2009

 

Аватара для Sp01LeR

Пользователь


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

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


Чтоб не терзать винду, для конверта и изменения граф. файлов можно(и даже нужно) использовать сторонние утилиты, например эту
Это сообщение посчитали полезным следующие участники:

Отправлено: 20:15, 30-09-2009 | #2



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

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


Ветеран


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

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


Если предпочтёте работать через Automation (например, если конвертирование — лишь часть большего проекта), то я бы предложил обратить внимание на GFL SDK - Library to load images and photos easily.
читать дальше »
Со страницы загрузки лучше всего брать полную версию GFL SDK (из-за большего количества материала) — компонент GFLAx (впрочем, доступный там же для загрузки и отдельно) в неё входит. Простой пример конвертации одного файла из «*.jpg» в «*.bmp»:
Код: Выделить весь код
AutoItSetOption("MustDeclareVars", 1)

Local Const $AX_BMP = 4

Local $objGflAx = ObjCreate("GflAx.GflAx")

With $objGflAx
	.LoadBitmap(@DocumentsCommonDir & "\Мои рисунки\Образцы рисунков\Зима.jpg")
	.SaveFormat = $AX_BMP
	.SaveBitmap("c:\Temp\Converted.bmp")
EndWith

$objGflAx = 0

Exit(0)
Конечно, возможностей у библиотеки куда как больше, нежели простая конвертация; почитать об объектной модели можно будет после установки в файле «GflAx-Help.chm», некоторые примеры работы можно посмотреть здесь: Серый форум / WSH: разбиение/склейка изображений, Серый форум / vbscript: вывод текста поверх обоев Рабочего стола, ну и, конечно, банальным поиском в Google.

Замечание 1: справедливости ради надо отметить, что, поскольку AutoIt умеет напрямую работать с DLL, можно не использовать Automation, а работать сразу с функциями соответствующей библиотеки «libgflXXX.dll» или непосредственно, так сказать, из коробки — с «gdiplus.dll». Однако сие гораздо сложнее.

Замечание 2: кстати сказать: и вышеуказанный Sp01LeR'ом ImageMagick тоже умеет работать не только в качестве утилиты командной строки, но и в качестве сервера Automation; однако же, на мой взгляд, к сожалению, реализовано там сие очень неудобно — а именно как прямой аналог параметров командной строки (справедливо для версии «ImageMagick-6.3.4-Q16»; возможно, что в новых версиях ситуация поменялась, но вряд ли).
Это сообщение посчитали полезным следующие участники:

Отправлено: 23:58, 30-09-2009 | #3


Googler


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

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


Цитата evg64:
Есть папка с большим количеством jpeg файлов, надо копирнуть папку и сохранить файлы как .bmp »
где-то так:
Код: Выделить весь код
#include <GDIPlus.au3>

$sJPGFile = "C:\TEST\PIC.JPG"
$sBMPFile = "C:\TEST\PIC.BMP"

_GDIPlus_Startup()

$hImage = _GDIPlus_ImageLoadFromFile($sJPGFile)
$CLSID  = _GDIPlus_EncodersGetCLSID("BMP")
$iRes   = _GDIPlus_ImageSaveToFileEx($hImage, $sBMPFile, $CLSID)

_GDIPlus_Shutdown()
Это сообщение посчитали полезным следующие участники:

Отправлено: 05:20, 01-10-2009 | #4


Ветеран


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

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


Изумительно! Это будет наилучший вариант.

Увы, я на эту библиотеку как-то практически не обращал внимания и совсем забыл про неё при обсуждении .

Отправлено: 06:37, 01-10-2009 | #5


Старожил


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

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


Всем спасибо! Вариантов оказывается много! Проблема решена! amel27, вам особенная благодарность!

Отправлено: 08:33, 01-10-2009 | #6


Аватара для Yashied

Старожил


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

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


Я для этого использую Photoshop.

Отправлено: 10:11, 01-10-2009 | #7


Пользователь


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

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


Right Click Image Converter был бы кстати

-------
If Begin then End; else End.


Отправлено: 17:12, 01-10-2009 | #8


Старожил


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

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


Цитата Yashied:
Я для этого использую Photoshop »
Оо! С фотошопом я не знаком, а там можно сразу много файлов так перезаписывать? Не надо, как в пэинте, Открыть файл - сохранить как ?

Отправлено: 08:56, 02-10-2009 | #9


Ветеран


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

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


evg64, надо . Только делаться сие может:
а) в пакетном режиме работы — макросами (Actions) непосредственно в PhotoShop: наиболее просто и понятно, можно обрабатывать папку целиком, но мало интерактивных возможностей;
б) используя Automation — «ObjCreate("Photoshop.Application")»; описание в формате *.pdf с примерами входит в поставку приложения.

Всё же, на мой взгляд, применение столь «тяжеловесного» приложения как Adobe Photoshop уместно только при нестандартной, сложной, «тяжёлой» или требующей интерактивного вмешательства обработке растровой графики. Иначе сие выглядит пальбой из пушки по воробьям. Ну, и не надо забывать о цене продукта.

Отправлено: 09:46, 02-10-2009 | #10



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [решено] Есть папка с большим количеством jpeg файлов, надо сохранить файлы как .bmp

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
как удалить папку с количеством файлов ,превыщающих 10 млн illusionmgs Хочу все знать 15 28-04-2009 19:53
Разное - [решено] Сохранить рисунок как... "Безымянный.bmp" yupa Microsoft Windows 2000/XP 2 20-03-2008 10:43
[решено] На рабочем столе (как веб-страница) не отображаются JPEG-файлы tiap-liap Microsoft Windows NT/2000/2003 2 28-05-2007 10:52
[решено] Не могу сохранит jpg-файлы в IE, предлагается Безымянный.bmp Garel Хочу все знать 20 03-10-2006 17:25
Вместо jpeg сохраняет bmp Evita Хочу все знать 14 05-06-2005 23:10




 
Переход