Exemplo n.º 1
0
Arquivo: exif.go Projeto: 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)
}
Exemplo n.º 2
0
Arquivo: exif.go Projeto: 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)
}
Exemplo n.º 3
0
Arquivo: main.go Projeto: imtaco/exif
// 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)
}
Exemplo n.º 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)
}