@@ -13,6 +13,7 @@ class Program {
1313 var inputFileName = " "
1414 var outputFileName : String ? = nil
1515 var shouldExtract = false
16+ var quality : Double = 1.0
1617
1718 func run( ) -> Bool {
1819
@@ -88,7 +89,7 @@ class Program {
8889 let baseURL = fileURL. deletingLastPathComponent ( )
8990 let wallpaperGenerator = WallpaperGenerator ( )
9091 let fileName = self . outputFileName ?? " output.heic "
91- try wallpaperGenerator. generate ( pictureInfos: pictureInfos, baseURL: baseURL, outputFileName: fileName) ;
92+ try wallpaperGenerator. generate ( pictureInfos: pictureInfos, baseURL: baseURL, outputFileName: fileName, quality : self . quality ) ;
9293 } catch ( let error as WallpapperError ) {
9394 self . consoleIO. writeMessage ( " Unexpected error occurs: \( error. message) " , to: . error)
9495 return false
@@ -162,6 +163,18 @@ class Program {
162163 optionIndex = inputNameOptionIndex
163164
164165 self . shouldExtract = true
166+ case . quality:
167+ let inputNameOptionIndex = optionIndex + 1
168+ if inputNameOptionIndex < CommandLine . arguments. count {
169+ if let value = Double ( CommandLine . arguments [ inputNameOptionIndex] ) {
170+ quality = value
171+ } else {
172+ self . consoleIO. writeMessage ( " invalid quality number " , to: . error)
173+ return ( true , false )
174+ }
175+ }
176+
177+ optionIndex = inputNameOptionIndex
165178 default :
166179 break ;
167180 }
@@ -192,5 +205,6 @@ class Program {
192205 self . consoleIO. writeMessage ( " -o \t \t \t output file name (default is 'output.heic') " )
193206 self . consoleIO. writeMessage ( " -i \t \t \t input .json file with wallpaper description " )
194207 self . consoleIO. writeMessage ( " -e \t \t \t input .heic file to extract metadata " )
208+ self . consoleIO. writeMessage ( " -q \t \t \t quality (default = 1.0) " )
195209 }
196210}
0 commit comments