mirror of https://github.com/dsoprea/go-exif.git
header: Fixed-bytes now determined by byte-order.
parent
2eb57331ff
commit
92f24ca51b
14
exif.go
14
exif.go
|
@ -45,7 +45,10 @@ var (
|
||||||
binary.LittleEndian: LittleEndianBoBytes,
|
binary.LittleEndian: LittleEndianBoBytes,
|
||||||
}
|
}
|
||||||
|
|
||||||
ExifFixedBytes = [2]byte { 0x2a, 0x00 }
|
ExifFixedBytesLookup = map[binary.ByteOrder][2]byte {
|
||||||
|
binary.LittleEndian: [2]byte { 0x2a, 0x00 },
|
||||||
|
binary.BigEndian: [2]byte { 0x00, 0x2a },
|
||||||
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
var (
|
var (
|
||||||
|
@ -147,8 +150,9 @@ func ParseExifHeader(data []byte) (eh ExifHeader, err error) {
|
||||||
}
|
}
|
||||||
|
|
||||||
fixedBytes := [2]byte { data[2], data[3] }
|
fixedBytes := [2]byte { data[2], data[3] }
|
||||||
if fixedBytes != ExifFixedBytes {
|
expectedFixedBytes := ExifFixedBytesLookup[byteOrder]
|
||||||
exifLogger.Warningf(nil, "EXIF header fixed-bytes should be 0x002a but are: [%v]", fixedBytes)
|
if fixedBytes != expectedFixedBytes {
|
||||||
|
exifLogger.Warningf(nil, "EXIF header fixed-bytes should be [%v] but are: [%v]", expectedFixedBytes, fixedBytes)
|
||||||
log.Panic(ErrNotExif)
|
log.Panic(ErrNotExif)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -215,7 +219,9 @@ func BuildExifHeader(byteOrder binary.ByteOrder, firstIfdOffset uint32) (headerB
|
||||||
_, err = b.WriteString(string(boBytes[:]))
|
_, err = b.WriteString(string(boBytes[:]))
|
||||||
log.PanicIf(err)
|
log.PanicIf(err)
|
||||||
|
|
||||||
_, err = b.Write(ExifFixedBytes[:])
|
fixedBytes := ExifFixedBytesLookup[byteOrder]
|
||||||
|
|
||||||
|
_, err = b.Write(fixedBytes[:])
|
||||||
log.PanicIf(err)
|
log.PanicIf(err)
|
||||||
|
|
||||||
err = binary.Write(b, byteOrder, firstIfdOffset)
|
err = binary.Write(b, byteOrder, firstIfdOffset)
|
||||||
|
|
Loading…
Reference in New Issue