is_photo()) { return; } // Locate jhead if ( ! is_file($path = exec('which jhead'))) { // @todo throw an exception ? Kohana::log('error', 'jhead is not installed'); } $binary = str_replace('\\', '/', realpath(dirname($path))); $binary .= '/jhead'; $binary .= (PHP_SHLIB_SUFFIX === 'dll') ? '.exe' : ''; if ( ! is_file($binary)) { // @todo throw an exception ? Kohana::log('error', 'Unable to locate jhead binary'); } // Invoke jhead if ($error = exec(escapeshellcmd($binary).' -q -autorot '.escapeshellarg($item->file_path()))) { // @todo throw an exception ? Kohana::log('error', 'Error during execution of jhead'); } // Update item $image_info = getimagesize($item->file_path()); $item->width = $image_info[0]; $item->height = $image_info[1]; $item->resize_dirty = 1; $item->thumb_dirty = 1; $item->save(); graphics::generate($item); } }