// Open opens a file path and loads its EXIF data. func (d *Data) Open(file string) error { cfile := C.CString(file) defer C.free(unsafe.Pointer(cfile)) exifData := C.exif_data_new_from_file(cfile) if exifData == nil { return ErrNoExifData } defer C.exif_data_unref(exifData) return d.parseExifData(exifData) }
// Parse finalizes the data loader and sets the tags func (d *Data) Parse() error { defer d.cleanup() exifData := C.exif_loader_get_data(d.exifLoader) if exifData == nil { return fmt.Errorf(ErrNoExifData.Error(), "") } defer func() { C.exif_data_unref(exifData) }() return d.parseExifData(exifData) }
// Finalizes the data loader and sets the Tags func (self *Data) Parse() error { defer self.cleanup() exifData := C.exif_loader_get_data(self.exifLoader) if exifData == nil { return ErrNoExifData } defer func() { C.exif_data_unref(exifData) }() return self.parseExifData(exifData) }
// Opens a file path and tries to read the EXIF data inside. func (self *Data) Open(file string) error { cfile := C.CString(file) exifData := C.exif_data_new_from_file(cfile) C.free(unsafe.Pointer(cfile)) if exifData == nil { return fmt.Errorf(ErrNoExifData.Error(), file) } defer func() { C.exif_data_unref(exifData) }() return self.parseExifData(exifData) }