예제 #1
0
 /**
  * Get EXIF data from an image
  * @since Version 3.10.0
  * @param \Railpage\Images\Image $imageObject
  * @param boolean $force
  * @return array
  */
 public function getImageExif(Image $imageObject, $force = false)
 {
     Debug::LogCLI("Fetching EIXF data for image ID " . $imageObject->id);
     if (!$force && isset($imageObject->meta['exif']) && $imageObject->meta['exif_format_version'] >= self::EXIF_FORMAT_VERSION) {
         $imageObject->meta['exif']['camera_make'] = self::normaliseCameraMake($imageObject->meta['exif']['camera_make']);
         $imageObject->meta['exif']['camera_model'] = self::normaliseCameraModel($imageObject->meta['exif']['camera_model']);
         $imageObject->meta['exif']['camera'] = ImageFactory::CreateCamera($imageObject->meta['exif']['camera_id'])->getArray();
         return $imageObject->meta['exif'];
     }
     /**
      * Fetch EXIF from the image provider API
      */
     $Provider = $imageObject->getProvider();
     $exif = $Provider->getExif($imageObject->photo_id);
     $exif_formatted = $this->getExifIDs($exif);
     $imageObject->meta['exif'] = $exif_formatted;
     $imageObject->meta['exif_format_version'] = self::EXIF_FORMAT_VERSION;
     $imageObject->commit();
     /**
      * Insert into our database
      */
     $query = "INSERT INTO image_exif ( \r\n                      image_id, camera_id, lens_id, lens_sn_id,\r\n                      aperture, exposure_id, exposure_program_id, \r\n                      focal_length, iso, white_balance_id\r\n                  ) VALUES (\r\n                      %d, %d, %d, %d, \r\n                      %s, %d, %d, \r\n                      %s, %s, %s\r\n                  ) ON DUPLICATE KEY UPDATE\r\n                      camera_id = VALUES(camera_id), lens_id = VALUES(lens_id),\r\n                      lens_sn_id = VALUES(lens_sn_id), aperture = VALUES(aperture),\r\n                      exposure_id = VALUES(exposure_id), exposure_program_id = VALUES(exposure_program_id),\r\n                      focal_length = VALUES(focal_length), iso = VALUES(iso), \r\n                      white_balance_id = VALUES(white_balance_id)";
     $query = sprintf($query, $this->db->quote($imageObject->id), $this->db->quote($exif_formatted['camera_id']), $this->db->quote($exif_formatted['lens_id']), $this->db->quote($exif_formatted['lens_sn_id']), $this->db->quote($exif_formatted['aperture']), $this->db->quote($exif_formatted['exposure_id']), $this->db->quote($exif_formatted['exposure_program_id']), $this->db->quote($exif_formatted['focal_length']), $this->db->quote($exif_formatted['iso_speed']), $this->db->quote($exif_formatted['white_balance_id']));
     $this->db->query($query);
     return $exif_formatted;
 }
예제 #2
0
 /**
  * Update the author for a specific image
  * @since Version 3.10.0
  * @param \Railpage\Images\Image $imageObject
  * @return \Railpage\Images\Image
  */
 public static function updateAuthor(Image $imageObject)
 {
     if ($id = UserUtility::findFromFlickrNSID($imageObject->author->id)) {
         $imageObject->author->railpage_id = $id;
         $imageObject->author->User = UserFactory::CreateUser($imageObject->author->railpage_id);
         $imageObject->commit();
     }
     return $imageObject;
 }