diff --git a/internal/pkg/epubzip/storage_image_writer.go b/internal/pkg/epubzip/storage_image_writer.go index ccec171..e19b3f2 100644 --- a/internal/pkg/epubzip/storage_image_writer.go +++ b/internal/pkg/epubzip/storage_image_writer.go @@ -50,3 +50,24 @@ func (e StorageImageWriter) Add(filename string, img image.Image, quality int) e return nil } + +func (e StorageImageWriter) AddRaw(filename string, uncompressedData []byte) error { + zipImage, err := CompressRaw(filename, uncompressedData) + + if err != nil { + return err + } + + e.mut.Lock() + defer e.mut.Unlock() + fh, err := e.fz.CreateRaw(zipImage.Header) + if err != nil { + return err + } + _, err = fh.Write(zipImage.Data) + if err != nil { + return err + } + + return nil +}