add jpeg encoder

This commit is contained in:
Dmitry Fedotov
2025-03-26 22:11:52 +03:00
parent d72540d0c3
commit b5df6e8c39
3 changed files with 20 additions and 4 deletions

View File

@@ -4,6 +4,7 @@ import (
"errors"
"image"
"image/color"
"image/jpeg"
"image/png"
"io"
)
@@ -15,8 +16,19 @@ func createBarnsleyFernPng(s *settings, w io.Writer) error {
drawBarnsleyFern(img, newColorFunc(s.CM), s.Dots)
if err := png.Encode(w, img); err != nil {
return errors.Join(errEncodePng, err)
switch s.OM {
case outputjpeg:
opts := &jpeg.Options{
Quality: 100,
}
if err := jpeg.Encode(w, img, opts); err != nil {
return errors.Join(errEncodePng, err)
}
case outputpng:
if err := png.Encode(w, img); err != nil {
return errors.Join(errEncodePng, err)
}
}
return nil