summaryrefslogtreecommitdiff
path: root/includes/jpeg_metadata_tk/Write_File_Info.php
diff options
context:
space:
mode:
Diffstat (limited to 'includes/jpeg_metadata_tk/Write_File_Info.php')
-rw-r--r--includes/jpeg_metadata_tk/Write_File_Info.php196
1 files changed, 196 insertions, 0 deletions
diff --git a/includes/jpeg_metadata_tk/Write_File_Info.php b/includes/jpeg_metadata_tk/Write_File_Info.php
new file mode 100644
index 0000000..efa402a
--- /dev/null
+++ b/includes/jpeg_metadata_tk/Write_File_Info.php
@@ -0,0 +1,196 @@
+<html>
+
+<!--***************************************************************************
+*
+* Filename: Write_File_Info.php
+*
+* Description: An example file showing how a user can write the metadata of an
+* image over the internet in the same way that Photoshop
+* edits 'File Info' data.
+* This script pairs with Edit_File_Info_Example.php, receiving
+* and processing the data from the HTML form in that script
+*
+* Author: Evan Hunter
+*
+* Date: 17/11/2004
+*
+* Project: PHP JPEG Metadata Toolkit
+*
+* Revision: 1.11
+*
+* Changes: 1.10 -> 1.11 : Changed displayed toolkit version numbers to reference Toolkit_Version.php
+* Changed error reporting to no errors
+* Removed limitation on file being in current directory
+*
+* 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
+*
+***************************************************************************-->
+
+
+ <head>
+ <META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+ <STYLE TYPE="text/css" MEDIA="screen, print, projection">
+ <!--
+
+ BODY { background-color:#505050; color:#F0F0F0 }
+ a { color:orange }
+ .EXIF_Main_Heading { color:red }
+ .EXIF_Secondary_Heading{ color: orange}
+ .EXIF_Table { border-collapse: collapse ; border: 1px solid #909000}
+ .EXIF_Table tbody td{border-width: 1px; border-style:solid; border-color: #909000;}
+
+ -->
+ </STYLE>
+
+ <title>Writing Photoshop File Info Metadata</title>
+ </head>
+
+ <body>
+ <?php require_once 'Toolkit_Version.php'; ?>
+ <p>Powered by: <a href="http://www.ozhiker.com/electronics/pjmt/" >PHP JPEG Metadata Toolkit version <?php echo $GLOBALS['Toolkit_Version'] ?>, Copyright (C) 2004 Evan Hunter</a></p> <!-- Change: displayed toolkit version numbers to reference Toolkit_Version.php - as of version 1.11 -->
+ <br>
+ <br>
+
+ <?php
+ // Turn off Error Reporting
+ error_reporting ( 0 ); // Change: changed to no reporting - as of version 1.11
+
+ require_once 'Toolkit_Version.php'; // Change: added as of version 1.11
+
+ // Include the required files for reading and writing Photoshop File Info
+ require_once 'JPEG.php';
+ require_once 'XMP.php';
+ require_once 'Photoshop_IRB.php';
+ require_once 'EXIF.php';
+ require_once 'Photoshop_File_Info.php';
+
+
+ // Copy all of the HTML Posted variables into an array
+ $new_ps_file_info_array = $GLOBALS['HTTP_POST_VARS'];
+
+ // Some characters are escaped with backslashes in HTML Posted variable
+ // Cycle through each of the HTML Posted variables, and strip out the slashes
+ foreach( $new_ps_file_info_array as $var_key => $var_val )
+ {
+ $new_ps_file_info_array[ $var_key ] = stripslashes( $var_val );
+ }
+
+ // Keywords should be an array - explode it on newline boundarys
+ $new_ps_file_info_array[ 'keywords' ] = explode( "\n", trim( $new_ps_file_info_array[ 'keywords' ] ) );
+
+ // Supplemental Categories should be an array - explode it on newline boundarys
+ $new_ps_file_info_array[ 'supplementalcategories' ] = explode( "\n", trim( $new_ps_file_info_array[ 'supplementalcategories' ] ) );
+
+ // Make the filename easier to access
+ $filename = $new_ps_file_info_array[ 'filename' ];
+
+ // Protect against hackers editing other files
+ $path_parts = pathinfo( $filename );
+ if ( strcasecmp( $path_parts["extension"], "jpg" ) != 0 )
+ {
+ echo "Incorrect File Type - JPEG Only\n";
+ exit( );
+ }
+ // Change: removed limitation on file being in current directory - as of version 1.11
+
+ // Retrieve the header information
+ $jpeg_header_data = get_jpeg_header_data( $filename );
+
+ // Retreive the EXIF, XMP and Photoshop IRB information from
+ // the existing file, so that it can be updated
+ $Exif_array = get_EXIF_JPEG( $filename );
+ $XMP_array = read_XMP_array_from_text( get_XMP_text( $jpeg_header_data ) );
+ $IRB_array = get_Photoshop_IRB( $jpeg_header_data );
+
+ // Update the JPEG header information with the new Photoshop File Info
+ $jpeg_header_data = put_photoshop_file_info( $jpeg_header_data, $new_ps_file_info_array, $Exif_array, $XMP_array, $IRB_array );
+
+ // Check if the Update worked
+ if ( $jpeg_header_data == FALSE )
+ {
+ // Update of file info didn't work - output error message
+ echo "Error - Failure update Photoshop File Info : $filename <br>\n";
+
+ // Output HTML with the form and data which was
+ // sent, to allow the user to fix it
+
+ $outputfilename = $filename;
+ require_once "Edit_File_info.php";
+ echo "</body>\n";
+ echo "</html>\n";
+
+ // Abort processing
+ exit( );
+ }
+
+ // Attempt to write the new JPEG file
+ if ( FALSE == put_jpeg_header_data( $filename, $filename, $jpeg_header_data ) )
+ {
+ // Writing of the new file didn't work - output error message
+ echo "Error - Failure to write new JPEG : $filename <br>\n";
+
+ // Output HTML with the form and data which was
+ // sent, to allow the user to fix it
+
+ $outputfilename = $filename;
+ require_once "Edit_File_info.php";
+ echo "</body>\n";
+ echo "</html>\n";
+
+ // Abort processing
+ exit( );
+ }
+
+
+ // Writing of new JPEG succeeded
+
+ // Output information about new file
+
+ echo "<h1>DONE! - $filename updated</h1>\n";
+ echo "<p><a href=\"Example.php?jpeg_fname=$filename\" >View Full Metatdata Information</a></p>\n";
+ echo "<p><a href=\"Edit_File_Info_Example.php?jpeg_fname=$filename\" >Re-Edit Photoshop File Info</a></p>\n";
+ echo "<br><br>\n";
+ echo "<p>Below is the updated image, you can save it and look at the changed metadata in your favorite image editor</p>\n";
+ echo "<p><img src=\"$filename\" ></p>\n";
+
+
+ ?>
+
+ <br>
+ <br>
+ <br>
+ <br>
+
+
+ <p>Powered by: <a href="http://www.ozhiker.com/electronics/pjmt/" >PHP JPEG Metadata Toolkit version <?php echo $GLOBALS['Toolkit_Version'] ?>, Copyright (C) 2004 Evan Hunter</a></p> <!-- Change: displayed toolkit version numbers to reference Toolkit_Version.php - as of version 1.11 -->
+
+ <br>
+ <br>
+
+ </body>
+
+</html>