2015-06-12 20 views
5

Czy istnieje sposób dodania informacji o prawach autorskich do pliku obrazu utworzonego przez PHP?Jak dodać informacje o prawach autorskich i autorach do obrazów utworzonych w PHP?

Aby być bardziej przejrzyste, można dodać copyright informacje do pliku w Photoshopie, więc kiedy się jej properties, widzisz coś podobnego do:

File Properties of an Image File opened in Windows 7

Chcę dodać/Edycja informacji Kontakt z plik w php. Czy to możliwe?

EDIT:

uzyskać obraz z danych wprowadzonych przez użytkownika, a następnie zmienić jego rozmiar z tej funkcji:

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

W jaki sposób tworzysz/edytujesz obrazy w php? Jak wygląda twój kod? – DocRattie

+1

@DocRattie, Edytowałem moje pytanie i dodałem niektóre z moich kodów, które tworzą plik obrazu – Ormoz

+2

czy próbowałeś tego? http://php.net/manual/en/function.iptcembed.php – Nikko

Odpowiedz

4

Nie wierzę, że PHP natywnie zawiera funkcję, aby edytować dane EXIF ​​w krótkim Plik JPEG, jednak istnieje rozszerzenie PEAR, które może odczytywać i zapisywać dane EXIF.

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

WWW dla modułu jest http://lsolesen.github.io/pel/ i przykładem do ustawiania opis jest https://github.com/lsolesen/pel/blob/master/examples/edit-description.php

UPDATE:

Wydaje strona pearhub.org upada/nieodwracalne, ale można pobierz pliki z GitHub (nie wymaga instalacji/konfiguracji, wystarczy dołączyć plik autoload.php).

Poniżej znajduje się przykład ustawienia pola praw autorskich w pliku JPEG. Pliki pobrane z GitHub są umieszczane w podkatalogu o nazwie pel, ale można je umieścić w dowolnym miejscu (wystarczy zaktualizować linię 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

dzięki, ale myślę, że nie jest powszechne modyfikowanie danych" EXIF ​​". Czy można z tym utworzyć i zmodyfikować pole "Copyright"? – Ormoz