Имя пользователя:
Пароль:
 | Правила  

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

Ответить
Настройки темы
[решено] Лишняя точка в конечном файле

Аватара для Tosyk

Старожил


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

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


Скрипт извлекает из картинок альфа-канал в файл .jpg с добавлением перед расширением _a. Но почему-то ставит лишнюю точку.
Т.е. имеем файл kartinka.png, после преобразований имя получается kartinka._a.jpg, а должно получиться kartinka_a.jpg. Подскажите как это исправить.

Код: Выделить весь код
#Include <File.au3>

AutoItSetOption("MustDeclareVars", 1)

Local $i
Local $sSourceFile, $sDestFile, $sDestFileJPG
Local $sDrive, $sFolder, $sFileName, $sExt

Local $sPattern = "\.(?i:tga|jpg|bmp|dds|png|tif|jpeg)"


If $CmdLine[0] <> 0 Then
	If FileInstall("convert.exe", @TempDir & "\", 1) = 1 Then
		ProgressOn("Converting", "", "0%")

		For $i = 1 To $CmdLine[0]
			$sSourceFile = $CmdLine[$i]

			ProgressSet(($i / $CmdLine[0]) * 100, $sFileName & $sExt, String(Round($i / $CmdLine[0] * 100, 1)) & "%")

			If FileExists($sSourceFile) Then
				_PathSplit($sSourceFile, $sDrive, $sFolder, $sFileName, $sExt)

				If StringRegExp($sExt, "\A" & $sPattern & "\z", 0) = 1 Then
					$sDestFileJPG = _PathMake($sDrive, $sFolder, $sFileName, "_a.jpg")
					$sDestFile = _PathMake($sDrive, $sFolder, $sFileName, ".png")

					RunWait("""" & @TempDir & "\convert.exe"" """ & $sSourceFile & """ -channel A -separate -quality 100 -colorspace sRGB """ & $sDestFileJPG & """", @TempDir, @SW_HIDE)
					RunWait("""" & @TempDir & "\convert.exe"" """ & $sSourceFile & """ -alpha off -colorspace sRGB """ & $sDestFile & """", @TempDir, @SW_HIDE)
				Else
					ConsoleWriteError("Extension of file [" & $sSourceFile & "] is [" & $sExt & "] and not in [" & $sPattern & "]" & @CRLF)
				EndIf
			Else
				ConsoleWriteError("File [" & $sSourceFile & "] not found" & @CRLF)
			EndIf
		Next

		ProgressSet(100 , "Converting complete", "100%")

		If FileExists(@TempDir & "\convert.exe") = 1 Then
			FileDelete(@TempDir & "\convert.exe")
		EndIf

		Sleep(1000)
		ProgressOff()
	Else
		ConsoleWriteError("Can't extract [convert.exe] into [" & @TempDir & "]" & @CRLF)
	EndIf
Else
	MsgBox(0, "Usage", @ScriptName & " <file>")
	ConsoleWrite("Usage: " & @ScriptName & " <file>" & @CRLF)
EndIf

Exit(0)

Отправлено: 02:14, 03-01-2015

 

Аватара для Creat0R

Must AutoIt


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

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


Код: Выделить весь код
$sDestFileJPG = _PathMake($sDrive, $sFolder, $sFileName & "_a", "jpg")
В _PathMake убирается точка в начале, если её нет, то функция её добавляет ("_a.jpg" трактуется как "._a.jpg").

-------
“Сделай так просто, как возможно, но не проще этого.”... “Ты никогда не решишь проблему, если будешь думать так же, как те, кто её создал.”

Альберт Эйнштейн

P.S «Не оказываю техподдержку через ПМ/ICQ, и по email - для этого есть форум. ©»

http://creator-lab.ucoz.ru/Images/Icons/autoit_icon.png Русское сообщество AutoIt | http://creator-lab.ucoz.ru/Images/Ic...eator_icon.png CreatoR's Lab | http://creator-lab.ucoz.ru/Images/Icons/oac_icon.png Opera AC Community

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

Отправлено: 02:53, 03-01-2015 | #2



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

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


Аватара для Tosyk

Старожил


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

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


Creat0R, классно, спасибо!

Отправлено: 13:49, 03-01-2015 | #3



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Wireless - Wi-Fi <Ad Hoc, программная реализация, точка-точка> 1100 Сетевое оборудование 17 10-04-2011 18:42
Wireless - Очень нужна помощь. Телефония + Сеть соединение точка-точка amaectpo Сетевое оборудование 14 23-07-2010 07:52
Использование - [решено] На конечном компьютере не запущена служба учета лицензий SilentGeorge Лицензирование продуктов Microsoft 5 12-05-2009 08:09
Прочее - Настройка Wi-Fi сети точка-точка между двумя ПК. BaNiFaC Сетевое оборудование 6 08-03-2009 13:54
Существуют ли ADSL модемы точка-точка Luna Сетевые технологии 2 09-05-2004 08:25




 
Переход