⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 exif_makernote.php

📁 CMS系统 提供学习研究修改最好了 比流行的一些CMS简单 但是更容易理解 是帮助你学习PHPCMS系统的好东东哦
💻 PHP
字号:
<?php/******************************************************************************** Filename:     EXIF_Makernote.php** Description:  Provides functions for reading EXIF Makernote Information*               The actual functions for reading each manufacturers makernote*               are provided in the Makernotes directory.** Author:       Evan Hunter** Date:         23/7/2004** Project:      PHP JPEG Metadata Toolkit** Revision:     1.11** Changes:      1.00 -> 1.11 : changed makernotes directory definition to allow*                              the toolkit to be portable across directories** URL:          http://electronics.ozhiker.com** Copyright:    Copyright Evan Hunter 2004** License:      This file is part of the PHP JPEG Metadata Toolkit.**               The PHP JPEG Metadata Toolkit is free software; you can*               redistribute it and/or modify it under the terms of the*               GNU General Public License as published by the Free Software*               Foundation; either version 2 of the License, or (at your*               option) any later version.**               The PHP JPEG Metadata Toolkit is distributed in the hope*               that it will be useful, but WITHOUT ANY WARRANTY; without*               even the implied warranty of MERCHANTABILITY or FITNESS*               FOR A PARTICULAR PURPOSE.  See the GNU General Public License*               for more details.**               You should have received a copy of the GNU General Public*               License along with the PHP JPEG Metadata Toolkit; if not,*               write to the Free Software Foundation, Inc., 59 Temple*               Place, Suite 330, Boston, MA  02111-1307  USA**               If you require a different license for commercial or other*               purposes, please contact the author: evan@ozhiker.com*******************************************************************************/// Create the Makernote Parser and Interpreter Function Array$GLOBALS['Makernote_Function_Array'] = array(   "Read_Makernote_Tag" => array( ),                                                "get_Makernote_Text_Value" => array( ),                                                "Interpret_Makernote_to_HTML" => array( ) );// Include the Main TIFF and EXIF Tags arrayinclude_once 'EXIF.php';/******************************************************************************** Include the Makernote Scripts*******************************************************************************/// Set the Makernotes Directory$dir = dirname(__FILE__) . "/Makernotes/";      // Change: as of version 1.11 - to allow directory portability// Open the directory$dir_hnd = @opendir ( $dir );// Cycle through each of the files in the Makernotes directorywhile ( ( $file = readdir( $dir_hnd ) ) !== false ){        // Check if the current item is a file        if ( is_file ( $dir . $file ) )        {                // Item is a file, break it into it's parts                $path_parts = pathinfo( $dir . $file );                // Check if the extension is php                if ( $path_parts["extension"] == "php" )                {                        // This is a php script - include it                        include_once ($dir . $file) ;                }        }}// close the directoryclosedir( $dir_hnd );/******************************************************************************** Function:     Read_Makernote_Tag** Description:  Attempts to decodes the Makernote tag supplied, returning the*               new tag with the decoded information attached.** Parameters:   Makernote_Tag - the element of an EXIF array containing the*                               makernote, as returned from get_EXIF_JPEG*               EXIF_Array - the entire EXIF array containing the*                            makernote, as returned from get_EXIF_JPEG, in*                            case more information is required for decoding*               filehnd - an open file handle for the file containing the*                         makernote - does not have to be positioned at the*                         start of the makernote*** Returns:      Makernote_Tag - the Makernote_Tag from the parameters, but*                               modified to contain the decoded information*******************************************************************************/function Read_Makernote_Tag( $Makernote_Tag, $EXIF_Array, $filehnd ){        // Check if the Makernote is present but empty - this sometimes happens        if ( ( strlen( $Makernote_Tag['Data'] ) === 0 ) ||             ( $Makernote_Tag['Data'] === str_repeat ( "\x00", strlen( $Makernote_Tag['Data'] )) ) )        {                // Modify the makernote to display that it is empty                $Makernote_Tag['Decoded Data'] = "Empty";                $Makernote_Tag['Makernote Type'] = "Empty";                $Makernote_Tag['Makernote Tags'] = "Empty";                $Makernote_Tag['Decoded'] = TRUE;                // Return the new makernote                return $Makernote_Tag;        }        // Check if the Make Field exists in the TIFF IFD        if ( array_key_exists ( 271, $EXIF_Array[0] ) )        {                // A Make tag exists in IFD0, collapse multiple strings (if any), and save result                $Make_Field = implode ( "\n", $EXIF_Array[0][271]['Data']);        }        else        {                // No Make field found                $Make_Field = "";        }        // Cycle through each of the "Read_Makernote_Tag" functions        foreach( $GLOBALS['Makernote_Function_Array']['Read_Makernote_Tag'] as $func )        {                // Run the current function, and save the result                $New_Makernote_Tag = $func( $Makernote_Tag, $EXIF_Array, $filehnd, $Make_Field );                // Check if a valid result was returned                if ( $New_Makernote_Tag !== FALSE )                {                        // A valid result was returned - stop cycling                        break;                }        }        // Check if a valid result was returned        if ( $New_Makernote_Tag === false )        {                // A valid result was NOT returned - construct a makernote tag representing this                $New_Makernote_Tag = $Makernote_Tag;                $New_Makernote_Tag['Decoded'] = FALSE;                $New_Makernote_Tag['Makernote Type'] = "Unknown Makernote";        }        // Return the new makernote tag        return $New_Makernote_Tag;}/******************************************************************************* End of Function:     Read_Makernote_Tag******************************************************************************//******************************************************************************** Function:     get_Makernote_Text_Value** Description:  Attempts to provide a text value for any makernote tag marked*               as type special. Returns false no handler could be found to*               process the tag** Parameters:   Exif_Tag - the element of an the Makernote array containing the*                          tag in question, as returned from Read_Makernote_Tag*               Tag_Definitions_Name - The name of the Tag Definitions group*                                      within the global array IFD_Tag_Definitions*** Returns:      output - the text value for the tag*               FALSE - If no handler could be found to process this tag, or if*                       an error occured in decoding*******************************************************************************/function get_Makernote_Text_Value( $Tag, $Tag_Definitions_Name ){        // Cycle through each of the "get_Makernote_Text_Value" functions        foreach( $GLOBALS['Makernote_Function_Array']['get_Makernote_Text_Value'] as $func )        {                // Run the current function, and save the result                $Text_Val = $func( $Tag, $Tag_Definitions_Name );                // Check if a valid result was returned                if ( $Text_Val !== FALSE )                {                        // valid result - return it                        return $Text_Val;                }        }        // No Special tag handler found for this tag - return false        return FALSE;}/******************************************************************************* End of Function:     get_Makernote_Text_Value******************************************************************************//******************************************************************************** Function:     Interpret_Makernote_to_HTML** Description:  Attempts to interpret a makernote into html.** Parameters:   Makernote_Tag - the element of an EXIF array containing the*                               makernote, as returned from get_EXIF_JPEG*               filename - the name of the JPEG file being processed ( used*                          by scripts which display embedded thumbnails)*** Returns:      output - the html representing the makernote*******************************************************************************/function Interpret_Makernote_to_HTML( $Makernote_tag, $filename ){        // Create a string to receive the HTML        $output_str = "";        // Check if the makernote tag is valid        if ( $Makernote_tag === FALSE )        {                // No makernote info - return                return $output_str;        }        // Check if the makernote has been marked as unknown        if ( $Makernote_tag['Makernote Type'] == "Unknown Makernote" )        {                // Makernote is unknown - return message                $output_str .= "<h4 class=\"EXIF_Makernote_Small_Heading\">Unknown Makernote Coding</h4>\n";                return $output_str;        }        else        {                // Makernote is known - add a heading to the output                $output_str .= "<p class=\"EXIF_Makernote_Text\">Makernote Coding: " . $Makernote_tag['Makernote Type'] . "</p>\n";        }        // Check if this is an empty makernote        if ( $Makernote_tag['Makernote Type'] == "Empty" )        {                // It is empty - don't try to interpret                return $output_str;        }        // Cycle through each of the "Interpret_Makernote_to_HTML" functions        foreach( $GLOBALS['Makernote_Function_Array']['Interpret_Makernote_to_HTML'] as $func )        {                // Run the current function, and save the result                $html_text = $func( $Makernote_tag, $filename );                // Check if a valid result was returned                if ( $html_text !== FALSE )                {                        // valid result - return it                        return $output_str . $html_text;                }        }        // No Interpreter function handled the makernote - return a message        $output_str .= "<h4 class=\"EXIF_Makernote_Small_Heading\">Could not Decode Makernote, it may be corrupted or empty</h4>\n";        return $output_str;}/******************************************************************************* End of Function:     Interpret_Makernote_to_HTML******************************************************************************/?>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -