Resize captures to 50% before serving
Uses sips to halve the image width, reducing transfer size and downstream processing cost. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
parent
0bfb46206d
commit
f8f7f69db8
12
main.go
12
main.go
|
|
@ -12,7 +12,9 @@ import (
|
||||||
"os"
|
"os"
|
||||||
"os/exec"
|
"os/exec"
|
||||||
"path/filepath"
|
"path/filepath"
|
||||||
|
"regexp"
|
||||||
"sort"
|
"sort"
|
||||||
|
"strconv"
|
||||||
"strings"
|
"strings"
|
||||||
"time"
|
"time"
|
||||||
)
|
)
|
||||||
|
|
@ -132,6 +134,16 @@ func captureHandler(w http.ResponseWriter, r *http.Request) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Resize to 50% using sips
|
||||||
|
if out, err := exec.Command("sips", "-g", "pixelWidth", tmpFile).Output(); err == nil {
|
||||||
|
re := regexp.MustCompile(`pixelWidth:\s*(\d+)`)
|
||||||
|
if m := re.FindSubmatch(out); m != nil {
|
||||||
|
if w, _ := strconv.Atoi(string(m[1])); w > 0 {
|
||||||
|
exec.Command("sips", "--resampleWidth", strconv.Itoa(w/2), tmpFile).Run()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
log.Printf("Captured display %s", display)
|
log.Printf("Captured display %s", display)
|
||||||
serveAndDelete(w, tmpFile)
|
serveAndDelete(w, tmpFile)
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue