Я использовал NativeProcess для запуска моего .cmd-файла, чтобы использовать преобразование Imagemagick в Windows.use as3 NativeProcess для запуска windows cmd
ЦМД является
convert -resize 1%x2% 3% 4%
На моем компьютере, он выглядел нормально. Но на каком-то другом компьютере ошибка выглядела так, будто «-resize» был искажен.
я изменил ЦМД
convert 1% 2%x3% 4% 5%
, но на каком-то компьютере, он по-прежнему есть ошибка.
Это то, что выход воздуха UTF-8 и окна CMD используют Unicode?
Как его использовать, это не приведет к ошибке?
мой код
private var mProcess:NativeProcess;
private function convertImgToTargetPng(filePath:String,resultFilePath:String,width:Number,height:Number,scale:Number=1):void
{
var convertFile:File = File.applicationDirectory.resolvePath("script").resolvePath("convert.cmd");
var nativeProcessStartupInfo = new NativeProcessStartupInfo();
nativeProcessStartupInfo.executable = convertFile;
nativeProcessStartupInfo.workingDirectory = File.userDirectory;
var processArgs:Vector.<String> = new Vector.<String>();
processArgs.push("-resize");
processArgs.push(width*scale);
processArgs.push(height*scale);
processArgs.push(filePath);
processArgs.push(resultFilePath);
nativeProcessStartupInfo.arguments = processArgs;
mProcess = new NativeProcess();
mProcess.addEventListener(ProgressEvent.STANDARD_ERROR_DATA, onConvertErrorHandler);
mProcess.addEventListener(NativeProcessExitEvent.EXIT, onConvertExitHandler);
try
{
mProcess.start(nativeProcessStartupInfo);
}
catch (e : Error)
{
Alert.show("convert failed: " + e.message);
}
}
private function onConvertErrorHandler(event : ProgressEvent):void
{
var data:String = mProcess.standardError.readUTFBytes(mProcess.standardError.bytesAvailable);
Alert.show("convert error :" + data);
}
private function onConvertExitHandler(event : NativeProcessExitEvent):void
{
mProcess.removeEventListener(ProgressEvent.STANDARD_ERROR_DATA, onConvertErrorHandler);
mProcess.removeEventListener(NativeProcessExitEvent.EXIT, onConvertExitHandler);
Alert.show("convert success");
}
Показать AS3 код, как вы настройки аргументы для вашего ** NativeProcess **. Обычно делайте что-то вроде: 'args.push ('- resize', '640x480', 'myOption3', 'myOption4')' замените 640x480 своими номерами. Почему у вас есть «1% x2%»? Являются ли эти ссылки на некоторые другие переменные? Покажите вещи, которые нам нужны, чтобы правильно ответить –
проверить мой ответ. У меня нет изображения для тестирования, но оно должно быть полезно для результата. –