2015-06-12 10 views
5

C'è un modo per aggiungere informazioni sul copyright al file immagine creato da PHP?Come aggiungere informazioni su copyright e autori alle immagini create in PHP?

Per essere più chiaro, è possibile aggiungere copyright informazioni in un file con photoshop, in modo che quando si ottiene la sua properties, si vede qualcosa di simile a:

File Properties of an Image File opened in Windows 7

voglio aggiungere/modificare dettagli informazioni di un file in php. È possibile?

EDIT:

ho un'immagine da input dell'utente, quindi ridimensionarlo con questa funzione:

function image_resize($src, $w, $h, $dst, $width, $height, $extension) 
{ 
    switch($extension){ 
    case 'bmp': $img = imagecreatefromwbmp($src); break; 
    case 'gif': $img = imagecreatefromgif($src); break; 
    case 'jpg': $img = imagecreatefromjpeg($src); break; 
    case 'png': $img = imagecreatefrompng($src); break; 
    default : return "Unsupported picture type!"; 
    } 
    $new = imagecreatetruecolor($width, $height); 
    // preserve transparency 
    if($extension == "gif" or $extension == "png"){ 
    imagecolortransparent($new, imagecolorallocatealpha($new, 0, 0, 0, 127)); 
     imagealphablending($new, true); 
    imagesavealpha($new, false); 
    } 
    imagecopyresampled($new, $img, 0, 0, 0, 0, $width, $height, $w, $h); 
    imageinterlace($new,1);//for progressive jpeg image 
    switch($extension){ 
    case 'bmp': imagewbmp($new, $dst); break; 
    case 'gif': imagegif($new, $dst); break; 
    case 'jpg': imagejpeg($new, $dst); break; 
    case 'png': imagepng($new, $dst); break; 
    } 
    return true; 
} 
+1

Come si apportano/modificano le immagini in php? Com'è il tuo codice? – DocRattie

+1

@DocRattie, ho modificato la mia domanda e aggiunto alcuni dei miei codici che creano il file immagine – Ormoz

+2

hai provato questo? http://php.net/manual/en/function.iptcembed.php – Nikko

risposta

4

Non credo che PHP contiene nativamente una funzione per modificare i dati EXIF ​​in un File JPEG, tuttavia esiste un'estensione PEAR in grado di leggere e scrivere dati EXIF.

pear channel-discover pearhub.org 
pear install pearhub/PEL 

sito web per il modulo è a http://lsolesen.github.io/pel/ e un esempio per impostare la descrizione è al https://github.com/lsolesen/pel/blob/master/examples/edit-description.php

UPDATE:

Sembra che il sito è giù pearhub.org/andato per sempre, ma è possibile scaricare i file da GitHub (nessuna installazione/installazione richiesta, basta includere il file autoload.php).

Di seguito è riportato un esempio per impostare il campo copyright in un file JPEG. I file scaricati da GitHub sono collocati in una sottodirectory denominata pel sebbene tu li possa posizionare dove vuoi (basta aggiornare la riga require_once).

<?php 

// Make the PEL functions available 
require_once 'pel/autoload.php'; // Update path if your checked out copy of PEL is elsewhere 

use lsolesen\pel\PelJpeg; 
use lsolesen\pel\PelTag; 
use lsolesen\pel\PelEntryCopyright; 

/* 
* Values for you to set 
*/ 

// Path and name of file you want to edit 
$input_file = "/tmp/image.jpg"; 

// Name of file to write output to 
$output_file = "/tmp/altered.jpg"; 

// Copyright info to add 
$copyright = "Eborbob 2015"; 


/* 
* Do the work 
*/ 

// Load the image into PEL 
$pel = new PelJpeg($input_file); 

// Get the EXIF data (See the PEL docs to understand this) 
$ifd = $pel->getExif()->getTiff()->getIfd(); 

// Get the copyright field 
$entry = $ifd->getEntry(PelTag::COPYRIGHT); 

if ($entry == null) 
{ 
     // No copyright field - make a new one 
     $entry = new PelEntryCopyright($copyright); 
     $ifd->addEntry($entry); 
} 
else 
{ 
     // Overwrite existing field 
     $entry->setValue($copyright); 
} 

// Save the updated file 
$pel->saveFile($output_file); 
+0

grazie, Ma penso che non sia comune modificare i dati di 'EXIF'. Puoi creare e modificare il campo 'Copyright' con quello? – Ormoz