Add some options

This commit is contained in:
Milan Nikolic
2025-06-14 01:45:32 +02:00
parent fd5cb861cd
commit 7e4e58029a
15 changed files with 128 additions and 96 deletions

View File

@@ -12,11 +12,11 @@ type HTML struct {
}
// NewHTML returns new HTML handler.
func NewHTML(width, height float64, nogl bool) *HTML {
func NewHTML(width, height float64, noWebGL bool) *HTML {
h := &HTML{}
tpl := htmlWebGL
if nogl {
if noWebGL {
tpl = html
}
tpl = strings.Replace(tpl, "{WIDTH}", fmt.Sprintf("%.0f", width), -1)

View File

@@ -9,12 +9,13 @@ import (
// JPEG handler.
type JPEG struct {
reader ImageReader
reader ImageReader
quality int
}
// NewJPEG returns new JPEG handler.
func NewJPEG(reader ImageReader) *JPEG {
return &JPEG{reader}
func NewJPEG(reader ImageReader, quality int) *JPEG {
return &JPEG{reader, quality}
}
// ServeHTTP handles requests on incoming connections.
@@ -36,7 +37,7 @@ func (j *JPEG) ServeHTTP(w http.ResponseWriter, r *http.Request) {
return
}
err = image.NewEncoder(w).Encode(img)
err = image.NewEncoder(w, j.quality).Encode(img)
if err != nil {
log.Printf("jpeg: encode: %v", err)

View File

@@ -13,13 +13,14 @@ import (
// MJPEG handler.
type MJPEG struct {
reader ImageReader
delay int
reader ImageReader
delay int
quality int
}
// NewMJPEG returns new MJPEG handler.
func NewMJPEG(reader ImageReader, delay int) *MJPEG {
return &MJPEG{reader, delay}
func NewMJPEG(reader ImageReader, delay, quality int) *MJPEG {
return &MJPEG{reader, delay, quality}
}
// ServeHTTP handles requests on incoming connections.
@@ -61,7 +62,7 @@ loop:
continue
}
err = image.NewEncoder(partWriter).Encode(img)
err = image.NewEncoder(partWriter, m.quality).Encode(img)
if err != nil {
log.Printf("mjpeg: encode: %v", err)
continue

View File

@@ -14,13 +14,14 @@ import (
// Socket handler.
type Socket struct {
reader ImageReader
delay int
reader ImageReader
delay int
quality int
}
// NewSocket returns new socket handler.
func NewSocket(reader ImageReader, delay int) *Socket {
return &Socket{reader, delay}
func NewSocket(reader ImageReader, delay, quality int) *Socket {
return &Socket{reader, delay, quality}
}
// ServeHTTP handles requests on incoming connections.
@@ -43,7 +44,7 @@ func (s *Socket) ServeHTTP(w http.ResponseWriter, r *http.Request) {
w := new(bytes.Buffer)
err = image.NewEncoder(w).Encode(img)
err = image.NewEncoder(w, s.quality).Encode(img)
if err != nil {
log.Printf("socket: encode: %v", err)
continue