mirror of
https://github.com/celogeek/go-comic-converter.git
synced 2025-05-25 00:02:37 +02:00
Compare commits
1 Commits
f33c095094
...
d1265a5135
Author | SHA1 | Date | |
---|---|---|---|
d1265a5135 |
@ -17,6 +17,18 @@ type Image struct {
|
||||
Data []byte
|
||||
}
|
||||
|
||||
var naiveJFIFHeader = []byte{
|
||||
0xFF, 0xD8, // SOI
|
||||
0xFF, 0xE0, // APP0 Marker
|
||||
0x00, 0x10, // Length
|
||||
0x4A, 0x46, 0x49, 0x46, 0x00, // JFIF\0
|
||||
0x01, 0x02, // 1.02
|
||||
0x00, // Density type
|
||||
0x00, 0x01, // X Density
|
||||
0x00, 0x01, // Y Density
|
||||
0x00, 0x00, // No Thumbnail
|
||||
}
|
||||
|
||||
// CompressImage create gzip encoded jpeg
|
||||
func CompressImage(filename string, format string, img image.Image, quality int) (Image, error) {
|
||||
var (
|
||||
@ -28,7 +40,11 @@ func CompressImage(filename string, format string, img image.Image, quality int)
|
||||
case "png":
|
||||
err = png.Encode(&data, img)
|
||||
case "jpeg":
|
||||
err = jpeg.Encode(&data, img, &jpeg.Options{Quality: quality})
|
||||
// static JFIF header for better compatibility with Kindle devices
|
||||
var b bytes.Buffer
|
||||
err = jpeg.Encode(&b, img, &jpeg.Options{Quality: quality})
|
||||
data.Write(naiveJFIFHeader)
|
||||
data.Write(b.Bytes()[2:])
|
||||
default:
|
||||
err = fmt.Errorf("unknown format %q", format)
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user