mirror of
https://github.com/celogeek/go-comic-converter.git
synced 2025-05-25 16:22:37 +02:00
set static naive JFIF headers for compatibility with kindle
This commit is contained in:
parent
47205b16be
commit
d1265a5135
@ -17,6 +17,18 @@ type Image struct {
|
|||||||
Data []byte
|
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
|
// CompressImage create gzip encoded jpeg
|
||||||
func CompressImage(filename string, format string, img image.Image, quality int) (Image, error) {
|
func CompressImage(filename string, format string, img image.Image, quality int) (Image, error) {
|
||||||
var (
|
var (
|
||||||
@ -28,7 +40,11 @@ func CompressImage(filename string, format string, img image.Image, quality int)
|
|||||||
case "png":
|
case "png":
|
||||||
err = png.Encode(&data, img)
|
err = png.Encode(&data, img)
|
||||||
case "jpeg":
|
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:
|
default:
|
||||||
err = fmt.Errorf("unknown format %q", format)
|
err = fmt.Errorf("unknown format %q", format)
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user