Beispiel #1
0
Datei: exif.go Projekt: xiam/exif
// 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)
}
Beispiel #2
0
Datei: exif.go Projekt: xiam/exif
// 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)
}
Beispiel #3
0
// 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)
}
Beispiel #4
0
// 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)
}