note 84762 modified in function.exif-read-data by yannick

From: Date: Thu, 07 Aug 2008 13:56:00 +0000
Subject: note 84762 modified in function.exif-read-data by yannick
References: 1  Groups: php.notes 
Request: Send a blank email to php-notes+get-143273@lists.php.net to get a copy of this message
I wanted some quick and easy functions for computing the shutter speed and f-stop. I couldn't find any anywhere, so I made some. It took some research : <?php function exif_get_float($value) { $pos = strpos($value, '/'); if ($pos === false) return (float) $value; $a = (float) substr($value, 0, $pos); $b = (float) substr($value, $pos+1); return ($b == 0) ? ($a) : ($a / $b); } function exif_get_shutter(&$exif) { if (!isset($exif['ShutterSpeedValue'])) return false; $apex = exif_get_float($exif['ShutterSpeedValue']); $shutter = pow(2, -$apex); if ($shutter == 0) return false; if ($shutter >= 1) return round($shutter) . 's'; return '1/' . round(1 / $shutter) . 's'; } function exif_get_fstop(&$exif) { if (!isset($exif['ApertureValue'])) return false; $apex = exif_get_float($exif['ApertureValue']); $fstop = pow(2, $apex/2); if ($fstop == 0) return false; return 'f/' . round($fstop,1); } ?> --was-- I wanted some quick and easy functions for computing the shutter speed and f-stop. I couldn't find any anywhere, so I made some. It took some research function exif_get_float($value) { $pos = strpos($value, '/'); if ($pos === false) return (float) $value; $a = (float) substr($value, 0, $pos); $b = (float) substr($value, $pos+1); return ($b == 0) ? ($a) : ($a / $b); } function exif_get_shutter(&$exif) { if (!isset($exif['ShutterSpeedValue'])) return false; $apex = exif_get_float($exif['ShutterSpeedValue']); $shutter = pow(2, -$apex); if ($shutter == 0) return false; if ($shutter >= 1) return round($shutter) . 's'; return '1/' . round(1 / $shutter) . 's'; } function exif_get_fstop(&$exif) { if (!isset($exif['ApertureValue'])) return false; $apex = exif_get_float($exif['ApertureValue']); $fstop = pow(2, $apex/2); if ($fstop == 0) return false; return 'f/' . round($fstop,1); } http://php.net/manual/en/function.exif-read-data.php

« previous php.notes (#143273) next »