diff --git a/camera/camera_linux.go b/camera/camera_linux.go index 6510a69..3ac1c8b 100644 --- a/camera/camera_linux.go +++ b/camera/camera_linux.go @@ -144,7 +144,7 @@ func (c *Camera) Read() (img image.Image, err error) { } if c.opts.Timestamp { - img, err = im.Timestamp(img, c.opts.TimeFormat) + img = im.Timestamp(img, c.opts.TimeFormat) } return diff --git a/camera/camera_opencv.go b/camera/camera_opencv.go index 952e122..50c3483 100644 --- a/camera/camera_opencv.go +++ b/camera/camera_opencv.go @@ -74,7 +74,7 @@ func (c *Camera) Read() (img image.Image, err error) { } if c.opts.Timestamp { - img, err = im.Timestamp(img, c.opts.TimeFormat) + img = im.Timestamp(img, c.opts.TimeFormat) } return diff --git a/camera/camera_windows.go b/camera/camera_windows.go index fc5177b..39007f3 100644 --- a/camera/camera_windows.go +++ b/camera/camera_windows.go @@ -186,7 +186,7 @@ func (c *Camera) Read() (img image.Image, err error) { } if c.opts.Timestamp { - img, err = im.Timestamp(img, c.opts.TimeFormat) + img = im.Timestamp(img, c.opts.TimeFormat) } return diff --git a/image/image.go b/image/image.go index be15dc8..e51dca6 100644 --- a/image/image.go +++ b/image/image.go @@ -1,7 +1,6 @@ package image import ( - "fmt" "image" "image/color" "image/draw" @@ -35,13 +34,15 @@ func Flip(img image.Image, dir string) image.Image { return img } -func Timestamp(img image.Image, format string) (image.Image, error) { +func Timestamp(img image.Image, format string) image.Image { dimg, ok := img.(draw.Image) if !ok { - return img, fmt.Errorf("camera: %T is not a drawable image type", img) + b := img.Bounds() + dimg = image.NewRGBA(image.Rect(0, 0, b.Dx(), b.Dy())) + draw.Draw(dimg, b, img, b.Min, draw.Src) } pixfont.DrawString(dimg, 10, 10, time.Now().Format(format), color.White) - return dimg, nil + return dimg }