/** * @param $exifData * @return Dto\Exif */ protected function buildExifDto($exifData) { $exifData['Aperture'] = isset($exifData['FNumber']) ? NumberConverter::convertRationalToFloat($exifData['FNumber']) : 0.0; $exifData['FocalLength'] = isset($exifData['FocalLength']) ? (int) NumberConverter::convertRationalToFloat($exifData['FocalLength']) : 0; $exifData['XResolution'] = isset($exifData['XResolution']) ? (int) NumberConverter::convertRationalToFloat($exifData['XResolution']) : 0; $exifData['YResolution'] = isset($exifData['YResolution']) ? (int) NumberConverter::convertRationalToFloat($exifData['YResolution']) : 0; $exifData['ColorSpace'] = isset($exifData['ColorSpace']) ? $this->colorSpaceUtility->translateColorSpaceId($exifData['ColorSpace']) : ''; $exifData['Description'] = isset($exifData['ImageDescription']) ? $exifData['ImageDescription'] : ''; if (isset($exifData['GPSLongitude']) && isset($exifData['GPSLongitudeRef']) && isset($exifData['GPSLatitude']) && isset($exifData['GPSLatitudeRef'])) { $exifData['GPSLongitude'] = GpsConverter::convertRationalArrayAndReferenceToFloat($exifData['GPSLongitude'], $exifData['GPSLongitudeRef']); $exifData['GPSLatitude'] = GpsConverter::convertRationalArrayAndReferenceToFloat($exifData['GPSLatitude'], $exifData['GPSLatitudeRef']); } return new Dto\Exif($exifData); }
/** * @test * @dataProvider rationalDataProvider * * @param $rational * @param $expected */ public function convertRationalToFloat($rational, $expected) { $actual = NumberConverter::convertRationalToFloat($rational); $this->assertEquals($expected, $actual); }