@@ -19,6 +19,7 @@ import (
1919const (
2020 defaultEdgeLen = 1024
2121 maxConcurrentFiles = 10 // Adjust this number based on your system's file descriptor limit
22+ defaultJpegQuality = 75
2223)
2324
2425var (
2728 inDirPath string
2829 edgeLen int
2930 sides []string
31+ quality int
3032
3133 validSides = []string {"front" , "back" , "left" , "right" , "top" , "bottom" }
3234 semaphore = make (chan struct {}, maxConcurrentFiles )
@@ -75,6 +77,7 @@ func init() {
7577 rootCmd .Flags ().StringVarP (& outFileDir , "out" , "o" , "." , "output file directory path" )
7678 rootCmd .Flags ().IntVarP (& edgeLen , "len" , "l" , defaultEdgeLen , "edge length of a cube face" )
7779 rootCmd .Flags ().StringSliceVarP (& sides , "sides" , "s" , []string {}, "array of sides [front,back,left,right,top,bottom] (default: all sides)" )
80+ rootCmd .Flags ().IntVarP (& quality , "quality" , "q" , defaultJpegQuality , "jpeg file output quality ranges from 1 to 100 inclusive, higher is better" )
7881}
7982
8083func processSingleImage (inPath , outDir string , needSubdir bool ) {
@@ -111,7 +114,7 @@ func processSingleImage(inPath, outDir string, needSubdir bool) {
111114 if needSubdir {
112115 outDir = filepath .Join (outDir , strings .TrimSuffix (filepath .Base (inPath ), filepath .Ext (inPath )))
113116 }
114- if err := conv .WriteImage (canvases , outDir , ext , sides ); err != nil {
117+ if err := conv .WriteImage (canvases , outDir , ext , sides , quality ); err != nil {
115118 progress .Lock ()
116119 progress .errors = append (progress .errors , fmt .Sprintf ("Error writing images for %s: %v" , inPath , err ))
117120 progress .Unlock ()
0 commit comments