| 123456789101112131415161718192021222324252627282930313233 |
- package imagetype
- import (
- "github.com/imgproxy/imgproxy/v3/bufreader"
- )
- var (
- tiffLE = []byte("II*\x00")
- tiffBE = []byte("MM\x00*")
- )
- func init() {
- // Register TIFF detector.
- // We register it with a priority of 80 to run it right before SVG,
- // but after other magic number detectors.
- RegisterDetector(80, IsTIFF)
- }
- // IsTIFF detects if the image is a TIFF
- func IsTIFF(r bufreader.ReadPeeker, ct, ext string) (Type, error) {
- b, err := r.Peek(max(len(tiffLE), len(tiffBE)))
- if err != nil {
- return Unknown, err
- }
- // If the file is detected as TIFF, but has a RAW extension, we skip it
- // since it is false positive.
- if (hasMagicBytes(b, tiffLE) || hasMagicBytes(b, tiffBE)) && !IsRawExtOrMime(ct, ext) {
- return TIFF, nil
- }
- return Unknown, nil
- }
|