/**
* Get the image attributes from the backend.
*
* @return array A hash of Exif fieldnames => values.
*/
public function getAttributes()
{
$attributes = $GLOBALS['injector']->getInstance('Ansel_Storage')->getImageAttributes($this->id);
$params = !empty($GLOBALS['conf']['exif']['params']) ? $GLOBALS['conf']['exif']['params'] : array();
$params['logger'] = $GLOBALS['injector']->getInstance('Horde_Log_Logger');
$exif = Horde_Image_Exif::factory($GLOBALS['conf']['exif']['driver'], $params);
$fields = Horde_Image_Exif::getFields($exif);
$output = array();
foreach ($fields as $field => $data) {
if (!isset($attributes[$field])) {
continue;
}
$output[$field] = $value = Horde_Image_Exif::getHumanReadable($field, Horde_String::convertCharset($attributes[$field], $GLOBALS['conf']['sql']['charset'], 'UTF-8'));
}
return $output;
}