当前位置: 首页>>代码示例>>PHP>>正文


PHP unRational函数代码示例

本文整理汇总了PHP中unRational函数的典型用法代码示例。如果您正苦于以下问题:PHP unRational函数的具体用法?PHP unRational怎么用?PHP unRational使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。


在下文中一共展示了unRational函数的13个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。

示例1: formatOlympusData

function formatOlympusData($type, $tag, $intel, $data)
{
    if ($type == "ASCII") {
    } else {
        if ($type == "URATIONAL" || $type == "SRATIONAL") {
            $data = unRational($data, $type, $intel);
            if ($intel == 1) {
                $data = intel2Moto($data);
            }
            if ($tag == "0204") {
                //DigitalZoom
                $data = $data . "x";
            }
            if ($tag == "0205") {
                //Unknown2
            }
        } else {
            if ($type == "USHORT" || $type == "SSHORT" || $type == "ULONG" || $type == "SLONG" || $type == "FLOAT" || $type == "DOUBLE") {
                $data = rational($data, $type, $intel);
                if ($tag == "0201") {
                    //JPEGQuality
                    if ($data == 1) {
                        $data = "SQ";
                    } else {
                        if ($data == 2) {
                            $data = "HQ";
                        } else {
                            if ($data == 3) {
                                $data = "SHQ";
                            } else {
                                $data = gettext("Unknown") . ": " . $data;
                            }
                        }
                    }
                }
                if ($tag == "0202") {
                    //Macro
                    if ($data == 0) {
                        $data = "Normal";
                    } else {
                        if ($data == 1) {
                            $data = "Macro";
                        } else {
                            $data = gettext("Unknown") . ": " . $data;
                        }
                    }
                }
            } else {
                if ($type == "UNDEFINED") {
                } else {
                    $data = bin2hex($data);
                    if ($intel == 1) {
                        $data = intel2Moto($data);
                    }
                }
            }
        }
    }
    return $data;
}
开发者ID:rb26,项目名称:zenphoto,代码行数:60,代码来源:olympus.php

示例2: formatSanyoData

function formatSanyoData($type, $tag, $intel, $data)
{
    if ($type == "ASCII") {
    } else {
        if ($type == "URATIONAL" || $type == "SRATIONAL") {
            $data = unRational($data, $type, $intel);
        } else {
            if ($type == "USHORT" || $type == "SSHORT" || $type == "ULONG" || $type == "SLONG" || $type == "FLOAT" || $type == "DOUBLE") {
                $data = rational($data, $type, $intel);
                if ($tag == "0200") {
                    //SpecialMode
                    if ($data == 0) {
                        $data = gettext("Normal");
                    } else {
                        $data = gettext("Unknown") . ": " . $data;
                    }
                }
                if ($tag == "0201") {
                    //Quality
                    if ($data == 2) {
                        $data = gettext("High");
                    } else {
                        $data = gettext("Unknown") . ": " . $data;
                    }
                }
                if ($tag == "0202") {
                    //Macro
                    if ($data == 0) {
                        $data = gettext("Normal");
                    } else {
                        $data = gettext("Unknown") . ": " . $data;
                    }
                }
            } else {
                if ($type == "UNDEFINED") {
                } else {
                    $data = bin2hex($data);
                    if ($intel == 1) {
                        $data = intel2Moto($data);
                    }
                }
            }
        }
    }
    return $data;
}
开发者ID:rb26,项目名称:zenphoto,代码行数:46,代码来源:sanyo.php

示例3: formatData

function formatData($type, $tag, $intel, $data)
{
    switch ($type) {
        case 'ASCII':
            if (($pos = strpos($data, chr(0))) !== false) {
                // Search for a null byte and stop there.
                $data = substr($data, 0, $pos);
            }
            if ($tag == '010f') {
                $data = ucwords(strtolower(trim($data)));
            }
            // Format certain kinds of strings nicely (Camera make etc.)
            break;
        case 'URATIONAL':
        case 'SRATIONAL':
            switch ($tag) {
                case '011a':
                    // XResolution
                // XResolution
                case '011b':
                    // YResolution
                    $data = round(unRational($data, $type, $intel)) . ' dots per ResolutionUnit';
                    break;
                case '829a':
                    // Exposure Time
                    $data = formatExposure(unRational($data, $type, $intel));
                    break;
                case '829d':
                    // FNumber
                    $data = 'f/' . unRational($data, $type, $intel);
                    break;
                case '9204':
                    // ExposureBiasValue
                    $data = round(unRational($data, $type, $intel), 2) . ' EV';
                    break;
                case '9205':
                    // ApertureValue
                // ApertureValue
                case '9202':
                    // MaxApertureValue
                    // ApertureValue is given in the APEX Mode. Many thanks to Matthieu Froment for this code
                    // The formula is : Aperture = 2*log2(FNumber) <=> FNumber = e((Aperture.ln(2))/2)
                    $datum = exp(unRational($data, $type, $intel) * log(2) / 2);
                    $data = round($datum, 1);
                    // Focal is given with a precision of 1 digit.
                    $data = 'f/' . $datum;
                    break;
                case '920a':
                    // FocalLength
                    $data = unRational($data, $type, $intel) . ' mm';
                    break;
                case '9201':
                    // ShutterSpeedValue
                    // The ShutterSpeedValue is given in the APEX mode. Many thanks to Matthieu Froment for this code
                    // The formula is : Shutter = - log2(exposureTime) (Appendix C of EXIF spec.)
                    // Where shutter is in APEX, log2(exposure) = ln(exposure)/ln(2)
                    // So final formula is : exposure = exp(-ln(2).shutter)
                    // The formula can be developed : exposure = 1/(exp(ln(2).shutter))
                    $datum = exp(unRational($data, $type, $intel) * log(2));
                    if ($datum != 0) {
                        $datum = 1 / $datum;
                    }
                    $data = formatExposure($datum);
                    break;
                default:
                    $data = unRational($data, $type, $intel);
                    break;
            }
            break;
        case 'USHORT':
        case 'SSHORT':
        case 'ULONG':
        case 'SLONG':
        case 'FLOAT':
        case 'DOUBLE':
            $data = rational($data, $type, $intel);
            switch ($tag) {
                case '0112':
                    // Orientation
                    // Example of how all of these tag formatters should be...
                    switch ($data) {
                        case 0:
                            // not set, presume normal
                        // not set, presume normal
                        case 1:
                            $data = gettext('1: Normal (0 deg)');
                            break;
                        case 2:
                            $data = gettext('2: Mirrored');
                            break;
                        case 3:
                            $data = gettext('3: Upside-down');
                            break;
                        case 4:
                            $data = gettext('4: Upside-down Mirrored');
                            break;
                        case 5:
                            $data = gettext('5: 90 deg CW Mirrored');
                            break;
                        case 6:
//.........这里部分代码省略.........
开发者ID:anqh,项目名称:core,代码行数:101,代码来源:exif.php

示例4: formatGPSData

function formatGPSData($type, $tag, $intel, $data)
{
    if ($type == "ASCII") {
        if ($tag == "0001" || $tag == "0003") {
            // Latitude Reference, Longitude Reference
            $data = $data[1] == $data[2] && $data[1] == $data[3] ? $data[0] : $data;
        }
    } else {
        if ($type == "URATIONAL" || $type == "SRATIONAL") {
            if ($tag == "0002" || $tag == "0004" || $tag == '0007') {
                //Latitude, Longitude, Time
                $datum = array();
                for ($i = 0; $i < strlen($data); $i = $i + 8) {
                    array_push($datum, substr($data, $i, 8));
                }
                $hour = unRational($datum[0], $type, $intel);
                $minutes = unRational($datum[1], $type, $intel);
                $seconds = unRational($datum[2], $type, $intel);
                if ($tag == "0007") {
                    //Time
                    $data = $hour . ":" . $minutes . ":" . $seconds;
                } else {
                    $data = $hour + $minutes / 60 + $seconds / 3600;
                }
            } else {
                $data = unRational($data, $type, $intel);
                if ($tag == "0006") {
                    $data .= 'm';
                }
            }
        } else {
            if ($type == "USHORT" || $type == "SSHORT" || $type == "ULONG" || $type == "SLONG" || $type == "FLOAT" || $type == "DOUBLE") {
                $data = rational($data, $type, $intel);
            } else {
                if ($type == "UNDEFINED") {
                } else {
                    if ($type == "UBYTE") {
                        $data = bin2hex($data);
                        if ($intel == 1) {
                            $num = intel2Moto($data);
                        }
                        if ($tag == "0000") {
                            // VersionID
                            $data = hexdec(substr($data, 0, 2)) . "." . hexdec(substr($data, 2, 2)) . "." . hexdec(substr($data, 4, 2)) . "." . hexdec(substr($data, 6, 2));
                        } else {
                            if ($tag == "0005") {
                                // Altitude Reference
                                if ($data == "00000000") {
                                    $data = '+';
                                } else {
                                    if ($data == "01000000") {
                                        $data = '-';
                                    }
                                }
                            }
                        }
                    } else {
                        $data = bin2hex($data);
                        if ($intel == 1) {
                            $data = intel2Moto($data);
                        }
                    }
                }
            }
        }
    }
    return $data;
}
开发者ID:CatBerg-TestOrg,项目名称:coppermine_1.6.x,代码行数:68,代码来源:gps.php

示例5: formatFujifilmData

function formatFujifilmData($type, $tag, $intel, $data)
{
    if ($type == "ASCII") {
    } else {
        if ($type == "URATIONAL" || $type == "SRATIONAL") {
            $data = unRational($data, $type, $intel);
            if ($tag == "1011") {
                //FlashStrength
                $data = $data . " EV";
            }
        } else {
            if ($type == "USHORT" || $type == "SSHORT" || $type == "ULONG" || $type == "SLONG" || $type == "FLOAT" || $type == "DOUBLE") {
                $data = rational($data, $type, $intel);
                if ($tag == "1001") {
                    //Sharpness
                    if ($data == 1) {
                        $data = gettext("Soft");
                    } else {
                        if ($data == 2) {
                            $data = gettext("Soft");
                        } else {
                            if ($data == 3) {
                                $data = gettext("Normal");
                            } else {
                                if ($data == 4) {
                                    $data = gettext("Hard");
                                } else {
                                    if ($data == 5) {
                                        $data = gettext("Hard");
                                    } else {
                                        $data = gettext("Unknown") . ": " . $data;
                                    }
                                }
                            }
                        }
                    }
                }
                if ($tag == "1002") {
                    //WhiteBalance
                    if ($data == 0) {
                        $data = gettext("Auto");
                    } else {
                        if ($data == 256) {
                            $data = gettext("Daylight");
                        } else {
                            if ($data == 512) {
                                $data = gettext("Cloudy");
                            } else {
                                if ($data == 768) {
                                    $data = gettext("DaylightColor-fluorescence");
                                } else {
                                    if ($data == 769) {
                                        $data = gettext("DaywhiteColor-fluorescence");
                                    } else {
                                        if ($data == 770) {
                                            $data = gettext("White-fluorescence");
                                        } else {
                                            if ($data == 1024) {
                                                $data = gettext("Incandescence");
                                            } else {
                                                if ($data == 3840) {
                                                    $data = gettext("Custom");
                                                } else {
                                                    $data = gettext("Unknown") . ": " . $data;
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
                if ($tag == "1003") {
                    //Color
                    if ($data == 0) {
                        $data = gettext("Chroma Saturation Normal(STD)");
                    } else {
                        if ($data == 256) {
                            $data = gettext("Chroma Saturation High");
                        } else {
                            if ($data == 512) {
                                $data = gettext("Chroma Saturation Low(ORG)");
                            } else {
                                $data = gettext("Unknown: ") . $data;
                            }
                        }
                    }
                }
                if ($tag == "1004") {
                    //Tone
                    if ($data == 0) {
                        $data = gettext("Contrast Normal(STD)");
                    } else {
                        if ($data == 256) {
                            $data = gettext("Contrast High(HARD)");
                        } else {
                            if ($data == 512) {
                                $data = gettext("Contrast Low(ORG)");
                            } else {
//.........这里部分代码省略.........
开发者ID:CatBerg-TestOrg,项目名称:coppermine_1.6.x,代码行数:101,代码来源:fujifilm.php

示例6: formatCanonData

function formatCanonData($type, $tag, $intel, $data, $exif, &$result)
{
    $place = 0;
    if ($type == "ASCII") {
        $result = $data = str_replace("", "", $data);
    } else {
        if ($type == "URATIONAL" || $type == "SRATIONAL") {
            $data = unRational($data, $type, $intel);
            if ($tag == "0204") {
                //DigitalZoom
                $data = $data . "x";
            }
        } else {
            if ($type == "USHORT" || $type == "SSHORT" || $type == "ULONG" || $type == "SLONG" || $type == "FLOAT" || $type == "DOUBLE") {
                $data = rational($data, $type, $intel);
                $result['RAWDATA'] = $data;
                if ($tag == "0001") {
                    //first chunk
                    $result['Bytes'] = hexdec(intel2Moto(substr($data, $place, 4)));
                    $place += 4;
                    //0
                    if ($result['Bytes'] != strlen($data) / 2) {
                        return $result;
                    }
                    //Bad chunk
                    $result['Macro'] = hexdec(intel2Moto(substr($data, $place, 4)));
                    $place += 4;
                    //1
                    switch ($result['Macro']) {
                        case 1:
                            $result['Macro'] = gettext("Macro");
                            break;
                        case 2:
                            $result['Macro'] = gettext("Normal");
                            break;
                        default:
                            $result['Macro'] = gettext("Unknown");
                    }
                    $result['SelfTimer'] = hexdec(intel2Moto(substr($data, $place, 4)));
                    $place += 4;
                    //2
                    switch ($result['SelfTimer']) {
                        case 0:
                            $result['SelfTimer'] = gettext("Off");
                            break;
                        default:
                            $result['SelfTimer'] .= gettext("/10s");
                    }
                    $result['Quality'] = hexdec(intel2Moto(substr($data, $place, 4)));
                    $place += 4;
                    //3
                    switch ($result['Quality']) {
                        case 2:
                            $result['Quality'] = gettext("Normal");
                            break;
                        case 3:
                            $result['Quality'] = gettext("Fine");
                            break;
                        case 5:
                            $result['Quality'] = gettext("Superfine");
                            break;
                        default:
                            $result['Quality'] = gettext("Unknown");
                    }
                    $result['Flash'] = hexdec(intel2Moto(substr($data, $place, 4)));
                    $place += 4;
                    //4
                    switch ($result['Flash']) {
                        case 0:
                            $result['Flash'] = gettext("Off");
                            break;
                        case 1:
                            $result['Flash'] = gettext("Auto");
                            break;
                        case 2:
                            $result['Flash'] = gettext("On");
                            break;
                        case 3:
                            $result['Flash'] = gettext("Red Eye Reduction");
                            break;
                        case 4:
                            $result['Flash'] = gettext("Slow Synchro");
                            break;
                        case 5:
                            $result['Flash'] = gettext("Auto + Red Eye Reduction");
                            break;
                        case 6:
                            $result['Flash'] = gettext("On + Red Eye Reduction");
                            break;
                        case 16:
                            $result['Flash'] = gettext("External Flash");
                            break;
                        default:
                            $result['Flash'] = gettext("Unknown");
                    }
                    $result['DriveMode'] = hexdec(intel2Moto(substr($data, $place, 4)));
                    $place += 4;
                    //5
                    switch ($result['DriveMode']) {
                        case 0:
//.........这里部分代码省略.........
开发者ID:anqh,项目名称:core,代码行数:101,代码来源:canon.php

示例7: formatNikonData

function formatNikonData($type, $tag, $intel, $model, $data)
{
    switch ($type) {
        case "ASCII":
            break;
            // do nothing!
        // do nothing!
        case "URATIONAL":
        case "SRATIONAL":
            switch ($tag) {
                case '0084':
                    // LensInfo
                    $minFL = unRational(substr($data, 0, 8), $type, $intel);
                    $maxFL = unRational(substr($data, 8, 8), $type, $intel);
                    $minSP = unRational(substr($data, 16, 8), $type, $intel);
                    $maxSP = unRational(substr($data, 24, 8), $type, $intel);
                    if ($minFL == $maxFL) {
                        $data = sprintf('%0.0f f/%0.0f', $minFL, $minSP);
                    } elseif ($minSP == $maxSP) {
                        $data = sprintf('%0.0f-%0.0fmm f/%0.1f', $minFL, $maxFL, $minSP);
                    } else {
                        $data = sprintf('%0.0f-%0.0fmm f/%0.1f-%0.1f', $minFL, $maxFL, $minSP, $maxSP);
                    }
                    break;
                case "0085":
                    if ($model == 1) {
                        $data = unRational($data, $type, $intel) . " m";
                    }
                    //ManualFocusDistance
                    break;
                case "0086":
                    if ($model == 1) {
                        $data = unRational($data, $type, $intel) . "x";
                    }
                    //DigitalZoom
                    break;
                case "000a":
                    if ($model == 0) {
                        $data = unRational($data, $type, $intel) . "x";
                    }
                    //DigitalZoom
                    break;
                default:
                    $data = unRational($data, $type, $intel);
                    break;
            }
            break;
        case "USHORT":
        case $type == "SSHORT":
        case $type == "ULONG":
        case $type == "SLONG":
        case $type == "FLOAT":
        case $type == "DOUBLE":
            $data = rational($data, $type, $intel);
            switch ($tag) {
                case "0003":
                    if ($model == 0) {
                        //Quality
                        switch ($data) {
                            case 1:
                                $data = gettext("VGA Basic");
                                break;
                            case 2:
                                $data = gettext("VGA Normal");
                                break;
                            case 3:
                                $data = gettext("VGA Fine");
                                break;
                            case 4:
                                $data = gettext("SXGA Basic");
                                break;
                            case 5:
                                $data = gettext("SXGA Normal");
                                break;
                            case 6:
                                $data = gettext("SXGA Fine");
                                break;
                            default:
                                $data = gettext("Unknown") . ": " . $data;
                                break;
                        }
                    }
                    break;
                case "0004":
                    if ($model == 0) {
                        //Color
                        switch ($data) {
                            case 1:
                                $data = gettext("Color");
                                break;
                            case 2:
                                $data = gettext("Monochrome");
                                break;
                            default:
                                $data = gettext("Unknown") . ": " . $data;
                                break;
                        }
                    }
                    break;
                case "0005":
//.........这里部分代码省略.........
开发者ID:stephenjschaefer,项目名称:APlusPhotography,代码行数:101,代码来源:nikon.php

示例8: formatFujifilmData

function formatFujifilmData($type, $tag, $intel, $data)
{
    if ($type == "ASCII") {
    } else {
        if ($type == "URATIONAL" || $type == "SRATIONAL") {
            $data = unRational($data, $type, $intel);
            if ($tag == "1011") {
                //FlashStrength
                $data = $data . " EV";
            }
        } else {
            if ($type == "USHORT" || $type == "SSHORT" || $type == "ULONG" || $type == "SLONG" || $type == "FLOAT" || $type == "DOUBLE") {
                $data = rational($data, $type, $intel);
                if ($tag == "1001") {
                    //Sharpness
                    if ($data == 1) {
                        $data = '!soft!';
                    } else {
                        if ($data == 2) {
                            $data = '!soft!';
                        } else {
                            if ($data == 3) {
                                $data = '!normal!';
                            } else {
                                if ($data == 4) {
                                    $data = '!hard!';
                                } else {
                                    if ($data == 5) {
                                        $data = '!hard!';
                                    } else {
                                        $data = '!unknown!' . ": " . $data;
                                    }
                                }
                            }
                        }
                    }
                }
                if ($tag == "1002") {
                    //WhiteBalance
                    if ($data == 0) {
                        $data = '!auto!';
                    } else {
                        if ($data == 256) {
                            $data = '!daylight!';
                        } else {
                            if ($data == 512) {
                                $data = '!cloudy!';
                            } else {
                                if ($data == 768) {
                                    $data = '!daylightcolor-fluorescence!';
                                } else {
                                    if ($data == 769) {
                                        $data = '!daywhitecolor-fluorescence!';
                                    } else {
                                        if ($data == 770) {
                                            $data = '!white-fluorescence!';
                                        } else {
                                            if ($data == 1024) {
                                                $data = '!incandescence!';
                                            } else {
                                                if ($data == 3840) {
                                                    $data = '!custom!';
                                                } else {
                                                    $data = '!unknown!' . ": " . $data;
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
                if ($tag == "1003") {
                    //Color
                    if ($data == 0) {
                        $data = '!chroma saturation normal(std)!';
                    } else {
                        if ($data == 256) {
                            $data = '!chroma saturation high!';
                        } else {
                            if ($data == 512) {
                                $data = '!chroma saturation low(org)!';
                            } else {
                                $data = '!unknown!' . ':' . $data;
                            }
                        }
                    }
                }
                if ($tag == "1004") {
                    //Tone
                    if ($data == 0) {
                        $data = '!contrast normal(std)!';
                    } else {
                        if ($data == 256) {
                            $data = '!contrast high(hard)!';
                        } else {
                            if ($data == 512) {
                                $data = '!contrast low(org)!';
                            } else {
//.........这里部分代码省略.........
开发者ID:ariep,项目名称:ZenPhoto20-DEV,代码行数:101,代码来源:fujifilm.php

示例9: formatPanasonicData

function formatPanasonicData($type, $tag, $intel, $data)
{
    if ($type == "ASCII") {
    } else {
        if ($type == "UBYTE" || $type == "SBYTE") {
            $data = bin2hex($data);
            if ($intel == 1) {
                $data = intel2Moto($data);
            }
            $data = hexdec($data);
            if ($tag == "000f") {
                //AFMode
                if ($data == 256) {
                    $data = "9-area-focusing";
                } else {
                    if ($data == 16) {
                        $data = "1-area-focusing";
                    } else {
                        if ($data == 4096) {
                            $data = gettext("3-area-focusing (High speed)");
                        } else {
                            if ($data == 4112) {
                                $data = gettext("1-area-focusing (High speed)");
                            } else {
                                if ($data == 16) {
                                    $data = gettext("1-area-focusing");
                                } else {
                                    if ($data == 1) {
                                        $data = gettext("Spot-focusing");
                                    } else {
                                        $data = "Unknown (" . $data . ")";
                                    }
                                }
                            }
                        }
                    }
                }
            }
        } else {
            if ($type == "URATIONAL" || $type == "SRATIONAL") {
                $data = unRational($data, $type, $intel);
            } else {
                if ($type == "USHORT" || $type == "SSHORT" || $type == "ULONG" || $type == "SLONG" || $type == "FLOAT" || $type == "DOUBLE") {
                    $data = rational($data, $type, $intel);
                    if ($tag == "0001") {
                        //Image Quality
                        if ($data == 2) {
                            $data = gettext("High");
                        } else {
                            if ($data == 3) {
                                $data = gettext("Standard");
                            } else {
                                if ($data == 6) {
                                    $data = gettext("Very High");
                                } else {
                                    if ($data == 7) {
                                        $data = gettext("RAW");
                                    } else {
                                        $data = gettext("Unknown") . " (" . $data . ")";
                                    }
                                }
                            }
                        }
                    }
                    if ($tag == "0003") {
                        //White Balance
                        if ($data == 1) {
                            $data = gettext("Auto");
                        } else {
                            if ($data == 2) {
                                $data = gettext("Daylight");
                            } else {
                                if ($data == 3) {
                                    $data = gettext("Cloudy");
                                } else {
                                    if ($data == 4) {
                                        $data = gettext("Halogen");
                                    } else {
                                        if ($data == 5) {
                                            $data = gettext("Manual");
                                        } else {
                                            if ($data == 8) {
                                                $data = gettext("Flash");
                                            } else {
                                                if ($data == 10) {
                                                    $data = gettext("Black and White");
                                                } else {
                                                    if ($data == 11) {
                                                        $data = gettext("Manual");
                                                    } else {
                                                        $data = gettext("Unknown") . " (" . $data . ")";
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
//.........这里部分代码省略.........
开发者ID:JoseCOCA,项目名称:baudprint,代码行数:101,代码来源:panasonic.php

示例10: formatCanonData

function formatCanonData($type, $tag, $intel, $data, $exif, &$result)
{
    $place = 0;
    if ($type == "ASCII") {
        $result = $data = str_replace("", "", $data);
    } else {
        if ($type == "URATIONAL" || $type == "SRATIONAL") {
            $data = unRational($data, $type, $intel);
            if ($tag == "0204") {
                //DigitalZoom
                $data = $data . "x";
            }
        } else {
            if ($type == "USHORT" || $type == "SSHORT" || $type == "ULONG" || $type == "SLONG" || $type == "FLOAT" || $type == "DOUBLE") {
                $data = rational($data, $type, $intel);
                $result['RAWDATA'] = $data;
                if ($tag == "0001") {
                    //first chunk
                    $result['Bytes'] = hexdec(intel2Moto(substr($data, $place, 4)));
                    $place += 4;
                    //0
                    if ($result['Bytes'] != strlen($data) / 2) {
                        return $result;
                    }
                    //Bad chunk
                    $result['Macro'] = hexdec(intel2Moto(substr($data, $place, 4)));
                    $place += 4;
                    //1
                    switch ($result['Macro']) {
                        case 1:
                            $result['Macro'] = '!macro!';
                            break;
                        case 2:
                            $result['Macro'] = '!normal!';
                            break;
                        default:
                            $result['Macro'] = '!unknown!';
                    }
                    $result['SelfTimer'] = hexdec(intel2Moto(substr($data, $place, 4)));
                    $place += 4;
                    //2
                    switch ($result['SelfTimer']) {
                        case 0:
                            $result['SelfTimer'] = '!off!';
                            break;
                        default:
                            $result['SelfTimer'] .= "/10s";
                    }
                    $result['Quality'] = hexdec(intel2Moto(substr($data, $place, 4)));
                    $place += 4;
                    //3
                    switch ($result['Quality']) {
                        case 2:
                            $result['Quality'] = '!normal!';
                            break;
                        case 3:
                            $result['Quality'] = '!fine!';
                            break;
                        case 5:
                            $result['Quality'] = '!superfine!';
                            break;
                        default:
                            $result['Quality'] = '!unknown!';
                    }
                    $result['Flash'] = hexdec(intel2Moto(substr($data, $place, 4)));
                    $place += 4;
                    //4
                    switch ($result['Flash']) {
                        case 0:
                            $result['Flash'] = '!off!';
                            break;
                        case 1:
                            $result['Flash'] = '!auto!';
                            break;
                        case 2:
                            $result['Flash'] = '!on!';
                            break;
                        case 3:
                            $result['Flash'] = '!red eye reduction!';
                            break;
                        case 4:
                            $result['Flash'] = '!slow synchro!';
                            break;
                        case 5:
                            $result['Flash'] = '!auto + red eye reduction!';
                            break;
                        case 6:
                            $result['Flash'] = '!on + red eye reduction!';
                            break;
                        case 16:
                            $result['Flash'] = '!external flash!';
                            break;
                        default:
                            $result['Flash'] = '!unknown!';
                    }
                    $result['DriveMode'] = hexdec(intel2Moto(substr($data, $place, 4)));
                    $place += 4;
                    //5
                    switch ($result['DriveMode']) {
                        case 0:
//.........这里部分代码省略.........
开发者ID:ariep,项目名称:ZenPhoto20-DEV,代码行数:101,代码来源:canon.php

示例11: formatData

function formatData($type, $tag, $intel, $data)
{
    switch ($type) {
        case 'ASCII':
            if (($pos = strpos($data, chr(0))) !== false) {
                // Search for a null byte and stop there.
                $data = substr($data, 0, $pos);
            }
            if ($tag == '010f') {
                $data = ucwords(strtolower(trim($data)));
            }
            // Format certain kinds of strings nicely (Camera make etc.)
            break;
        case 'URATIONAL':
        case 'SRATIONAL':
            switch ($tag) {
                case '011a':
                    // XResolution
                // XResolution
                case '011b':
                    // YResolution
                    $data = round(unRational($data, $type, $intel)) . ' dots per ResolutionUnit';
                    break;
                case '829a':
                    // Exposure Time
                    $data = formatExposure(unRational($data, $type, $intel));
                    break;
                case '829d':
                    // FNumber
                    $data = 'f/' . round(unRational($data, $type, $intel), 2);
                    break;
                case '9204':
                    // ExposureBiasValue (assume signed!)
                    $data = round(unRational($data, 'SRATIONAL', $intel), 2) . ' EV';
                    break;
                case '9205':
                    // ApertureValue
                // ApertureValue
                case '9202':
                    // MaxApertureValue
                    // ApertureValue is given in the APEX Mode. Many thanks to Matthieu Froment for this code
                    // The formula is : Aperture = 2*log2(FNumber) <=> FNumber = e((Aperture.ln(2))/2)
                    $datum = exp(unRational($data, $type, $intel) * log(2) / 2);
                    $data = 'f/' . round($datum, 1);
                    // Focal is given with a precision of 1 digit.
                    break;
                case '920a':
                    // FocalLength
                    $data = unRational($data, $type, $intel) . ' mm';
                    break;
                case '9201':
                    // ShutterSpeedValue
                    // The ShutterSpeedValue is given in the APEX mode. Many thanks to Matthieu Froment for this code
                    // The formula is : Shutter = - log2(exposureTime) (Appendix C of EXIF spec.)
                    // Where shutter is in APEX, log2(exposure) = ln(exposure)/ln(2)
                    // So final formula is : exposure = exp(-ln(2).shutter)
                    // The formula can be developed : exposure = 1/(exp(ln(2).shutter))
                    $datum = exp(unRational($data, $type, $intel) * log(2));
                    if ($datum != 0) {
                        $datum = 1 / $datum;
                    }
                    $data = formatExposure($datum);
                    break;
                default:
                    $data = unRational($data, $type, $intel);
                    break;
            }
            break;
        case 'USHORT':
        case 'SSHORT':
        case 'ULONG':
        case 'SLONG':
        case 'FLOAT':
        case 'DOUBLE':
            $data = rational($data, $type, $intel);
            switch ($tag) {
                case '0112':
                    // Orientation
                    // Example of how all of these tag formatters should be...
                    switch ($data) {
                        case 0:
                            // not set, presume normal
                        // not set, presume normal
                        case 1:
                            $data = '!1: normal (0 deg)!';
                            break;
                        case 2:
                            $data = '!2: mirrored!';
                            break;
                        case 3:
                            $data = '!3: upside-down!';
                            break;
                        case 4:
                            $data = '!4: upside-down mirrored!';
                            break;
                        case 5:
                            $data = '!5: 90 deg ccw mirrored!';
                            break;
                        case 6:
                            $data = '!6: 90 deg cw!';
//.........这里部分代码省略.........
开发者ID:ariep,项目名称:ZenPhoto20-DEV,代码行数:101,代码来源:exif.php

示例12: formatNikonData

function formatNikonData($type, $tag, $intel, $model, $data)
{
    switch ($type) {
        case "ASCII":
            break;
            // do nothing!
        // do nothing!
        case "URATIONAL":
        case "SRATIONAL":
            switch ($tag) {
                case '0084':
                    // LensInfo
                    $minFL = unRational(substr($data, 0, 8), $type, $intel);
                    $maxFL = unRational(substr($data, 8, 8), $type, $intel);
                    $minSP = unRational(substr($data, 16, 8), $type, $intel);
                    $maxSP = unRational(substr($data, 24, 8), $type, $intel);
                    if ($minFL == $maxFL) {
                        $data = sprintf('%0.0fmm f/%0.1f', $minFL, $minSP);
                    } elseif ($minSP == $maxSP) {
                        $data = sprintf('%0.0f-%0.0fmm f/%0.1f', $minFL, $maxFL, $minSP);
                    } else {
                        $data = sprintf('%0.0f-%0.0fmm f/%0.1f-%0.1f', $minFL, $maxFL, $minSP, $maxSP);
                    }
                    break;
                case "0085":
                    if ($model == 1) {
                        $data = unRational($data, $type, $intel) . " m";
                    }
                    //ManualFocusDistance
                    break;
                case "0086":
                    if ($model == 1) {
                        $data = unRational($data, $type, $intel) . "x";
                    }
                    //DigitalZoom
                    break;
                case "000a":
                    if ($model == 0) {
                        $data = unRational($data, $type, $intel) . "x";
                    }
                    //DigitalZoom
                    break;
                default:
                    $data = unRational($data, $type, $intel);
                    break;
            }
            break;
        case "USHORT":
        case $type == "SSHORT":
        case $type == "ULONG":
        case $type == "SLONG":
        case $type == "FLOAT":
        case $type == "DOUBLE":
            $data = rational($data, $type, $intel);
            switch ($tag) {
                case "0003":
                    if ($model == 0) {
                        //Quality
                        switch ($data) {
                            case 1:
                                $data = '!vga basic!';
                                break;
                            case 2:
                                $data = '!vga normal!';
                                break;
                            case 3:
                                $data = '!vga fine!';
                                break;
                            case 4:
                                $data = '!sxga basic!';
                                break;
                            case 5:
                                $data = '!sxga normal!';
                                break;
                            case 6:
                                $data = '!sxga fine!';
                                break;
                            default:
                                $data = '!unknown!' . ": " . $data;
                                break;
                        }
                    }
                    break;
                case "0004":
                    if ($model == 0) {
                        //Color
                        switch ($data) {
                            case 1:
                                $data = '!color!';
                                break;
                            case 2:
                                $data = '!monochrome!';
                                break;
                            default:
                                $data = '!unknown!' . ": " . $data;
                                break;
                        }
                    }
                    break;
                case "0005":
//.........这里部分代码省略.........
开发者ID:ariep,项目名称:ZenPhoto20-DEV,代码行数:101,代码来源:nikon.php

示例13: formatPanasonicData

function formatPanasonicData($type, $tag, $intel, $data)
{
    if ($type == "ASCII") {
    } else {
        if ($type == "UBYTE" || $type == "SBYTE") {
            $data = bin2hex($data);
            if ($intel == 1) {
                $data = intel2Moto($data);
            }
            $data = hexdec($data);
            if ($tag == "000f") {
                //AFMode
                if ($data == 256) {
                    $data = "9-area-focusing";
                } else {
                    if ($data == 16) {
                        $data = "1-area-focusing";
                    } else {
                        if ($data == 4096) {
                            $data = '!3-area-focusing (high speed)!';
                        } else {
                            if ($data == 4112) {
                                $data = '!1-area-focusing (high speed)!';
                            } else {
                                if ($data == 16) {
                                    $data = '!1-area-focusing!';
                                } else {
                                    if ($data == 1) {
                                        $data = '!spot-focusing!';
                                    } else {
                                        $data = '!unknown!' . " (" . $data . ")";
                                    }
                                }
                            }
                        }
                    }
                }
            }
        } else {
            if ($type == "URATIONAL" || $type == "SRATIONAL") {
                $data = unRational($data, $type, $intel);
            } else {
                if ($type == "USHORT" || $type == "SSHORT" || $type == "ULONG" || $type == "SLONG" || $type == "FLOAT" || $type == "DOUBLE") {
                    $data = rational($data, $type, $intel);
                    if ($tag == "0001") {
                        //Image Quality
                        if ($data == 2) {
                            $data = '!high!';
                        } else {
                            if ($data == 3) {
                                $data = '!standard!';
                            } else {
                                if ($data == 6) {
                                    $data = '!very high!';
                                } else {
                                    if ($data == 7) {
                                        $data = '!raw!';
                                    } else {
                                        $data = '!unknown!' . " (" . $data . ")";
                                    }
                                }
                            }
                        }
                    }
                    if ($tag == "0003") {
                        //White Balance
                        if ($data == 1) {
                            $data = '!auto!';
                        } else {
                            if ($data == 2) {
                                $data = '!daylight!';
                            } else {
                                if ($data == 3) {
                                    $data = '!cloudy!';
                                } else {
                                    if ($data == 4) {
                                        $data = '!halogen!';
                                    } else {
                                        if ($data == 5) {
                                            $data = '!manual!';
                                        } else {
                                            if ($data == 8) {
                                                $data = '!flash!';
                                            } else {
                                                if ($data == 10) {
                                                    $data = '!black and white!';
                                                } else {
                                                    if ($data == 11) {
                                                        $data = '!manual!';
                                                    } else {
                                                        $data = '!unknown!' . " (" . $data . ")";
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
//.........这里部分代码省略.........
开发者ID:ariep,项目名称:ZenPhoto20-DEV,代码行数:101,代码来源:panasonic.php


注:本文中的unRational函数示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。