Auteur Topic: Watermerk op foto's in Photostation 4  (gelezen 9749 keer)

Offline wizjos

  • Administrator
  • MVP
  • *
  • Bedankjes
  • -Gegeven: 122
  • -Ontvangen: 181
  • Berichten: 1.988
Watermerk op foto's in Photostation 4
« Gepost op: 21 mei 2010, 14:57:37 »
Als vervolg op de voorgaande mod voor Photostation 3 nu de aanpassing voor Photostation 4.

In het bestand convert.php (lokatie: /usr/syno/synoman/phpsrc/photo/) wordt het oproepen van de afbeeldingen geregeld.
Op regel negentig van dit bestand wordt gescheiden op welk soort bestand getoond moet worden. Keuze bestaat uit:
0 - Kleine thumbnail
1 - Grote thumbnail
2 - Origineel bestand
3 - Video
4 - 320px thumbnail
5 - 800px thumbnail
6 - mp4_H(oog)
7 - mp4_M(iddel)
8 - mp4_L(aag)

Middels het select case principe wordt hierin onderscheid gemaakt.

Ik heb de procedures bij 1, 2,4 en 5 zo aangepast dat daar waar de variabele $file wordt gevuld ($file = etc.) een aanroep wordt gedaan naar een nieuw toe te voegen functie WATERMARK.
Deze functie zorgt voor het invoegen van een watermerk rechtsonder in de afbeelding.

Hoe toe te passen:
1) Maak een reservekopie van het bestand /usr/syno/synoman/phpsrc/photo/convert.php
2) Pas convert.php als volgt aan:
na regel met 'case '1'' de regel met

$file = SYNOPHOTO_CONVERT_GetThumbPathFromFullPath($dir."/".$name, 1);wijzigen in$file = WATERMARK($dir,$name,1,1);na regel met 'case '2' de regel met$mime_type = SYNOPHOTO_CONVERT_GetPhotoMimeType($name);opzoeken en direct daarna een nieuwe regel invoeren:$file = WATERMARK($dir,$name,0,0);Vervolgens (nog steeds in 'case 2') de regel met$mime_type = "application/octet-stream";opzoeken en hier een nieuwe regel invoeren:$file = $dir."/".$name;als laatste in 'case 2' de regel voorbreak;uitcommentariëren (of verwijderen).
Dus zo:
//$file = $dir."/".$name;Bij 'case 4' de regel$file = SYNOPHOTO_CONVERT_GetThumbPathFromFullPath($dir."/".$name, 4);wijzigen in$file = WATERMARK($dir, $name, 1, 4);Bij 'case 5' de regel$file = SYNOPHOTO_CONVERT_GetThumbPathFromFullPath($dir."/".$name, 5);wijzigen in$file = WATERMARK($dir, $name, 1, 5);op de regel voor de php eindtag '?>' de volgende regels invoegenfunction WATERMARK($dir, $name, $thumb, $thumbsize)
{
global $filename;
$watermark = imagecreatefrompng('/var/services/photo/copyright.png');
$watermark_width = imagesx($watermark);
$watermark_height = imagesy($watermark);
$image = imagecreatetruecolor($watermark_width, $watermark_height);
if ($thumb == 0) {
$image = imagecreatefromjpeg($dir."/".$name);
$size = getimagesize($dir."/".$name);
} else {
//SYNOPHOTO_CONVERT_GetThumbPathFromFullPath($dir."/".$name, 1);
$image = imagecreatefromjpeg(SYNOPHOTO_CONVERT_GetThumbPathFromFullPath($dir."/".$name, $thumbsize));
$size = getimagesize(SYNOPHOTO_CONVERT_GetThumbPathFromFullPath($dir."/".$name, $thumbsize));
}
$dest_x = $size[0] - $watermark_width - 5;
$dest_y = $size[1] - $watermark_height - 5;
imagecopymerge($image, $watermark, $dest_x, $dest_y, 0, 0, $watermark_width, $watermark_height, 100); // 50% transparent
$filename = tempnam("/volume1/@tmp", "photostation_tmp_");//"/volume1/@tmp/tmp.jpg";
imagejpeg($image, $filename);
imagedestroy($image);
imagedestroy($watermark);
return $filename;
}
Na de regel
@readfile($file);invoegen:unlink($filename);Het uiteindelijke bestand komt er dan bij mij als volgt uit te zien (ik heb de oude regels als commentaar (//) laten staan...<?php
session_cache_limiter
("must-revalidate");

if(!
session_id()) {
session_start();
}

$SYNOPHOTO_ADMIN_PASS "hlinak3";
SYNOPHOTO_CONVERT_AccessRightCheck();

$SYNOPHOTO_SERVICE_DIR "/var/services/photo";
$SYNOPHOTO_EADIR "@eaDir";
$SYNOPHOTO_THUMB_FILE_BIG "SYNOPHOTO:THUMB_B&#46;jpg";
$SYNOPHOTO_THUMB_FILE_SMALL "SYNOPHOTO:THUMB_S&#46;jpg";
$SYNOPHOTO_FLV_FILE "SYNOPHOTO:FILM&#46;flv";
$SYNOPHOTO_FLV_FILE_FAIL "SYNOPHOTO:FILM&#46;fail";

$SYNOPHOTO_THUMB_FILE_MEDIAN "SYNOPHOTO:THUMB_M&#46;jpg";
$SYNOPHOTO_THUMB_FILE_LARGE "SYNOPHOTO:THUMB_L&#46;jpg";

$SYNOPHOTO_MP4_HIGH_FILE "SYNOPHOTO:FILM_H&#46;mp4";
$SYNOPHOTO_MP4_MEDIUM_FILE "SYNOPHOTO:FILM_M&#46;mp4";
$SYNOPHOTO_MP4_LOW_FILE "SYNOPHOTO:FILM_L&#46;mp4";

$SYNOPHOTO_ALLOW_PICT_NAMES_EXT = array(
"jpg",
"jpeg",
"jpe",
"bmp",
"gif",
"png",
// Camera raw files
"arw""srf""sr2"// Sony
"dcr""k25""kdc"// Kodak
"cr2","crw",// Canon
"nef"// nikon
"mrw"// Minolta
"ptx""pef",// Pentax
"raf"// Fuji
"3fr"// Hasselblad
"erf"// (Epson)
"mef"// (Mamiya)
"mos"// (Leaf)
"orf"// (Olympus),
"rw2"// (Panasonic)
"dng"// Adobe Digital Negative
"x3f"// Sigma Raw Image
"raw"  // Panasonic

);

$SYNOPHOTO_ALLOW_PICT_WITH_THUMB_EXT = array(
"jpg",
"jpeg",
"jpe",
"bmp",
// Camera raw files
"arw""srf""sr2"// Sony
"dcr""k25""kdc"// Kodak
"cr2","crw",// Canon
"nef"// nikon
"mrw"// Minolta
"ptx""pef",// Pentax
"raf"// Fuji
"3fr"// Hasselblad
"erf"// (Epson)
"mef"// (Mamiya)
"mos"// (Leaf)
"orf"// (Olympus),
"rw2"// (Panasonic)
"dng"// Adobe Digital Negative
"x3f"// Sigma Raw Image
"raw"  // Panasonic

);

// The mimetype of raw image files is not listed here
$SYNOPHOTO_ALLOW_PICT_NAMES_MIME = array(
'jpg' => 'image/jpeg',
'jpeg' => 'image/jpeg',
'jpe' => 'image/jpeg',
'bmp' => 'image/bmp',
'gif' => 'image/gif',
'png' => 'image/png'
);

$SYNOPHOTO_VIDEO_MIME = array(
'avi' => 'video/x-msvideo',
'm4v' => 'video/x-m4v',
'mov' => 'video/quicktime',
'mp4' => 'video/mp4',
'mpe' => 'video/mpeg',
'mpeg'=> 'video/mpeg',
'mpg'=> 'video/mpeg',
'qt' => 'video/quicktime',
'asf' => 'video/x-ms-asf',
'wmv' => 'video/x-ms-wmv'
);

if(isset(
$_GET['currdir'&#93;) && isset($_GET['currname'&#93;)) {

$dir $SYNOPHOTO_SERVICE_DIR&#46;"/"&#46;$_GET['currdir'&#93;;
$name $_GET['currname'&#93;;

$is_photo_file SYNOPHOTO_CONVERT_IsPhotoFile($name);

if(isset($_GET['showorig'&#93;)) {
if($is_photo_file) {
if(!SYNOPHOTO_CONVERT_CheckAllowOrig($dir$name)) {
exit;
}
$mime_type SYNOPHOTO_CONVERT_GetPhotoMimeType($name);
$file $dir&#46;"/"&#46;$name;
} else {
$mime_type "video/x-flv";
$file SYNOPHOTO_CONVERT_GetFlvPath($dir$name);
$name $name&#46;"&#46;flv";
}
} else if(isset($_GET['showthumb'&#93;)) {
$file SYNOPHOTO_CONVERT_GetThumbPathFromFullPath($SYNOPHOTO_SERVICE_DIR&#46;"/"&#46;$_GET['currdir'&#93;&#46;"/"&#46;$_GET['currname'&#93;, 0);
$mime_type "image/jpeg";
} else {
$file SYNOPHOTO_CONVERT_GetThumbPathFromFullPath($SYNOPHOTO_SERVICE_DIR&#46;"/"&#46;$_GET['currdir'&#93;&#46;"/"&#46;$_GET['currname'&#93;, 1);
$mime_type "image/jpeg";
}
} elseif(isset(
$_GET['dir'&#93;) && isset($_GET['name'&#93;)) {

$dir $SYNOPHOTO_SERVICE_DIR&#46;"/"&#46;@pack('H*', $_GET['dir'&#93;);
$name = @pack('H*'$_GET['name'&#93;);

$is_photo_file SYNOPHOTO_CONVERT_IsPhotoFile($name);

// 0:small; 1:big; 2:org; 3:flv; 4:320px thumb; 5:800px thumb; 6:mp4_H; 7:mp4_M; 8:mp4_L
switch ($_GET['type'&#93;) {
case '0':
$file SYNOPHOTO_CONVERT_GetThumbPathFromFullPath($dir&#46;"/"&#46;$name, 0);
$mime_type "image/jpeg";
break;
case '1':
//$file = SYNOPHOTO_CONVERT_GetThumbPathFromFullPath($dir&#46;"/"&#46;$name, 1);
$file WATERMARK($dir$name11);
$mime_type "image/jpeg";
break;
case '2':
if(!SYNOPHOTO_CONVERT_CheckAllowOrig($dir$name)) {
exit;
}
if($is_photo_file) {
$mime_type SYNOPHOTO_CONVERT_GetPhotoMimeType($name);
$file WATERMARK($dir$name00);
} else {
$mime_type SYNOPHOTO_CONVERT_GetVideoMimeType($name);
if(!$mime_type) {
$mime_type "application/octet-stream";
$file $dir&#46;"/"&#46;$name; //Opgelet, nieuw!!!!
}
}
//$file = $dir&#46;"/"&#46;$name;
break;
case '3':
$mime_type "video/x-flv";
$file SYNOPHOTO_CONVERT_GetFlvPath($dir$name);
$name $name&#46;"&#46;flv";
break;
case '4'// For 320px thumbnail
//$file = SYNOPHOTO_CONVERT_GetThumbPathFromFullPath($dir&#46;"/"&#46;$name, 4);
$file WATERMARK($dir$name14);
$mime_type "image/jpeg";
break;
case '5'// For 800px thumbnail
//$file = SYNOPHOTO_CONVERT_GetThumbPathFromFullPath($dir&#46;"/"&#46;$name, 5);
$file WATERMARK($dir$name15);
$mime_type "image/jpeg";
break;
case '6'// mp4 high quality
$file SYNOPHOTO_CONVERT_GetMP4Path($dir$name"H");
$mime_type "video/mp4";
break;
case '7'// mp4 medium quality
$file SYNOPHOTO_CONVERT_GetMP4Path($dir$name"M");
$mime_type "video/mp4";
break;
case '8'// mp4 low quality
$file SYNOPHOTO_CONVERT_GetMP4Path($dir$name"L");
$mime_type "video/mp4";
break;
default:
exit;
break;
}
}

$signature SYNOPHOTO_CONVERT_CreateSig($file);
if(
$signature) {
SYNOPHOTO_CONVERT_CheckSigExit($signature);
@header("Last-Modified: " &#46; $signature[0&#93;);
}

@
header("Cache-Control: max-age="&#46;(3600*24*7));
@header("Content-Type: "&#46;$mime_type);
@header("Content-Length: "&#46;filesize($file));

if($is_photo_file) {
@header("Content-Disposition: inline; filename="&#46;addslashes($name));
}
@
readfile($file);
unlink($filename);

function 
SYNOPHOTO_CONVERT_GetPhotoMimeType($path)
{
global $SYNOPHOTO_ALLOW_PICT_NAMES_MIME;

$path strtolower($path);
$path_parts pathinfo($path);
$extension $path_parts['extension'&#93;;
if(array_key_exists($extension$SYNOPHOTO_ALLOW_PICT_NAMES_MIME)) {
return $SYNOPHOTO_ALLOW_PICT_NAMES_MIME[$extension&#93;;
}
else {
return "image/x-" &#46; strtolower($extension);
}

}

function 
SYNOPHOTO_CONVERT_IsPhotoFile($path)
{
global $SYNOPHOTO_ALLOW_PICT_NAMES_EXT;

$path strtolower($path);
$path_parts pathinfo($path);
$extension $path_parts['extension'&#93;;
if(in_array($extension$SYNOPHOTO_ALLOW_PICT_NAMES_EXT)) {
return true;
} else {
return false;
}
}
function 
SYNOPHOTO_CONVERT_GetVideoMimeType($path)
{
global $SYNOPHOTO_VIDEO_MIME;

$path strtolower($path);
$path_parts pathinfo($path);
$extension $path_parts['extension'&#93;;
if(array_key_exists($extension$SYNOPHOTO_VIDEO_MIME)) {
return $SYNOPHOTO_VIDEO_MIME[$extension&#93;;
}
return '';
}


function 
SYNOPHOTO_CONVERT_IsPhotoFileWithThumb($path)
{
global $SYNOPHOTO_ALLOW_PICT_WITH_THUMB_EXT;

$path strtolower($path);
$path_parts pathinfo($path);
$extension $path_parts['extension'&#93;;
if(in_array($extension$SYNOPHOTO_ALLOW_PICT_WITH_THUMB_EXT)) {
return true;
} else {
return false;
}
}

function 
SYNOPHOTO_CONVERT_GetFlvPath($dir$name)
{
 global $SYNOPHOTO_EADIR$SYNOPHOTO_FLV_FILE$SYNOPHOTO_SERVICE_DIR;
 return $dir&#46;"/"&#46;$SYNOPHOTO_EADIR&#46;"/"&#46;$name&#46;"/"&#46;$SYNOPHOTO_FLV_FILE;
}

function 
SYNOPHOTO_CONVERT_GetMP4Path($dir$name$quality_type)
{
 global $SYNOPHOTO_EADIR$SYNOPHOTO_MP4_HIGH_FILE$SYNOPHOTO_MP4_MEDIUM_FILE$SYNOPHOTO_MP4_LOW_FILE$SYNOPHOTO_SERVICE_DIR;
switch ($quality_type) {
case "H":
$mp4_file $dir&#46;"/"&#46;$SYNOPHOTO_EADIR&#46;"/"&#46;$name&#46;"/"&#46;$SYNOPHOTO_MP4_HIGH_FILE;
break;
case "M":
$mp4_file $dir&#46;"/"&#46;$SYNOPHOTO_EADIR&#46;"/"&#46;$name&#46;"/"&#46;$SYNOPHOTO_MP4_MEDIUM_FILE;
break;
case "L":
$mp4_file $dir&#46;"/"&#46;$SYNOPHOTO_EADIR&#46;"/"&#46;$name&#46;"/"&#46;$SYNOPHOTO_MP4_LOW_FILE;
break;
}
 return $mp4_file;
}

function 
SYNOPHOTO_CONVERT_GetFlvFailPath($dir$name)
{
 global $SYNOPHOTO_EADIR$SYNOPHOTO_FLV_FILE_FAIL$SYNOPHOTO_SERVICE_DIR;
 return $dir&#46;"/"&#46;$SYNOPHOTO_EADIR&#46;"/"&#46;$name&#46;"/"&#46;$SYNOPHOTO_FLV_FILE_FAIL;
}

function 
SYNOPHOTO_CONVERT_GetThumbPathFromFullPath($path$type)
{
global $SYNOPHOTO_EADIR;
global $SYNOPHOTO_THUMB_FILE_BIG$SYNOPHOTO_THUMB_FILE_SMALL,
   $SYNOPHOTO_THUMB_FILE_MEDIAN$SYNOPHOTO_THUMB_FILE_LARGE;

$file_name basename($path);
$dir substr($path0strlen($path) - strlen($file_name));

switch ($type) {
case 0:
$thumb_file $dir&#46;$SYNOPHOTO_EADIR&#46;"/"&#46;$file_name&#46;"/"&#46;$SYNOPHOTO_THUMB_FILE_SMALL;
break;
case 1:
$thumb_file $dir&#46;$SYNOPHOTO_EADIR&#46;"/"&#46;$file_name&#46;"/"&#46;$SYNOPHOTO_THUMB_FILE_BIG;
break;
case 4:
$thumb_file $dir&#46;$SYNOPHOTO_EADIR&#46;"/"&#46;$file_name&#46;"/"&#46;$SYNOPHOTO_THUMB_FILE_MEDIAN;
break;
case 5:
$thumb_file $dir&#46;$SYNOPHOTO_EADIR&#46;"/"&#46;$file_name&#46;"/"&#46;$SYNOPHOTO_THUMB_FILE_LARGE;
break;
}
return $thumb_file;
}

function 
SYNOPHOTO_CONVERT_CreateSig($thumbpath) {
$filest = @stat($thumbpath);
$etag "";
if($filest != FALSE) {
$lastmod gmdate('D, d M Y H:i:s'$filest[9&#93;) &#46; ' GMT';
return array($lastmod);
} else {
return FALSE;
}
}

function 
SYNOPHOTO_CONVERT_CheckSigExit($signature) {
$etag $signature[0&#93;;
$lastmod $signature[1&#93;;

if(isset($_SERVER['HTTP_IF_MODIFIED_SINCE'&#93;)) {
$ims preg_replace('/;&#46;*$/'''$_SERVER['HTTP_IF_MODIFIED_SINCE'&#93; );
if($ims == $lastmod) {
@header("HTTP/1&#46;1 304 Not Modified");
exit;
}
}
}

function 
SYNOPHOTO_CONVERT_AccessRightCheck()
{
global $SYNOPHOTO_ADMIN_PASS;

if(isset($_SESSION['admin_syno_user'&#93;) && $_SESSION['admin_syno_user'&#93; == $SYNOPHOTO_ADMIN_PASS) {
return;
}

if(isset($_GET['currdir'&#93;) && isset($_GET['currname'&#93;)) {
$_GET['dir'&#93; = bin2hex($_GET['currdir'&#93;);
$_GET['name'&#93; = bin2hex($_GET['currname'&#93;);
}

if(!isset($_GET['dir'&#93;) || $_GET['dir'&#93; == "" || !isset($_GET['name'&#93;) || $_GET['name'&#93; == "") {
header("Location: /photo/index&#46;php");
exit;
}

$orig_dir = @pack('H*'$_GET['dir'&#93;);
$dir $orig_dir;

if(strstr($orig_dir"/")) {
$dir substr($orig_dir0strpos($orig_dir"/"));
if(strpos($orig_dir"/"strlen($dir) + 1)) {
$sub_dir substr($orig_dir0strpos($orig_dir"/"strlen($dir) + 1));
} else {
$sub_dir $orig_dir;
}
} else {
$sub_dir "";
}

if(!isset($_SESSION['accessible_album'&#93;)) {
SYNOPHOTO_CONVERT_GetAccessibleAlbums();
}

if(!$_SESSION['accessible_album'&#93;[$dir&#93; ||
   ($sub_dir != "" && !$_SESSION['accessible_subdir'&#93;[$sub_dir&#93;)) {
echo "<script>";
echo "parent&#46;location = "/photo/login&#46;php?url="&#46;bin2hex($_SERVER['PHP_SELF'&#93;&#46;"?"&#46;$_SERVER['QUERY_STRING'&#93;)&#46;"";";
echo "</script>";
exit;
}
}

function 
SYNOPHOTO_CONVERT_GetAccessibleAlbums()
{
$_SESSION['accessible_album'&#93; = null;
$_SESSION['accessible_subdir'&#93; = null;

if (isset($_SESSION['admin_syno_user'&#93;)) {
$query "Select * from photo_share order by sharename asc";
} elseif (isset($_SESSION['reg_syno_user'&#93;)) {
$query "Select * from photo_share where shareid in (select shareid from photo_access_right where userid = "&#46;$_SESSION['reg_syno_userid'&#93;&#46;") or public = true order by sharename asc";
} else {
$query "Select * from photo_share where public = true order by sharename asc";
}

$username "admin";
$dbname "photo";
$conn_string "dbname="&#46;$dbname&#46;" user="&#46;$username;

if (!isset($GLOBALS['dbconn_photo'&#93;) || $GLOBALS['dbconn_photo'&#93; == null) {
$GLOBALS['dbconn_photo'&#93; = pg_connect($conn_string) or die("Failed to connect");
}

$db_result pg_query($GLOBALS['dbconn_photo'&#93;, $query);

while($row pg_fetch_row($db_result)) {
if($row[8&#93; == 't') {
$_SESSION['accessible_subdir'&#93;[$row[1&#93;&#93; = 1;
} else {
$_SESSION['accessible_album'&#93;[$row[1&#93;&#93; = 1;
}
}
}

function 
SYNOPHOTO_CONVERT_CheckAllowOrig($dir$name)
{
if(SYNOPHOTO_CONVERT_IsPhotoFile($name)) {
if(!SYNOPHOTO_CONVERT_IsPhotoFileWithThumb($name)) {
return TRUE;
}
} else {
$file SYNOPHOTO_CONVERT_GetFlvFailPath($dir$name);
// User can download video when this video can not be converted to flv&#46;
if(@file_exists($file)) {
return TRUE;
}
$is_video TRUE;
}

$username "admin";
$dbname "photo";
$conn_string "dbname="&#46;$dbname&#46;" user="&#46;$username;

if (!isset($GLOBALS['dbconn_photo'&#93;) || $GLOBALS['dbconn_photo'&#93; == null) {
$GLOBALS['dbconn_photo'&#93; = pg_connect($conn_string) or die("Failed to connect");
}

$result FALSE;

$config_name "allow_orig";
if($is_video) {
$config_name "allow_video_download";
}

$query "Select config_value from photo_config where module_name = 'photo' and config_key = '"&#46;$config_name&#46;"'";
$db_result pg_query($GLOBALS['dbconn_photo'&#93;, $query);
if($row pg_fetch_row($db_result)) {
if($row[0&#93; == 'on') {
$result TRUE;
}
}
return $result;
}
function 
WATERMARK($dir$name$thumb$thumbsize)
{
global $filename;
$watermark imagecreatefrompng('/var/services/web/copyright&#46;png');
$watermark_width imagesx($watermark);
$watermark_height imagesy($watermark);
$image imagecreatetruecolor($watermark_width$watermark_height);
if ($thumb == 0) {
$image imagecreatefromjpeg($dir&#46;"/"&#46;$name);
$size getimagesize($dir&#46;"/"&#46;$name);
} else {
$image imagecreatefromjpeg(SYNOPHOTO_CONVERT_GetThumbPathFromFullPath($dir&#46;"/"&#46;$name, $thumbsize));
$size getimagesize(SYNOPHOTO_CONVERT_GetThumbPathFromFullPath($dir&#46;"/"&#46;$name, $thumbsize));
}
$dest_x $size[0&#93; - $watermark_width - 5;
$dest_y $size[1&#93; - $watermark_height - 5;
imagecopymerge($image$watermark$dest_x$dest_y00$watermark_width$watermark_height100); // 50% transparent
$filename tempnam("/volume1/@tmp""photostation_tmp_");//"/volume1/@tmp/tmp&#46;jpg";
imagejpeg($image$filename);
imagedestroy($image);
imagedestroy($watermark);
return $filename;
}
?>

Wat er hier gebeurt is dat een ander plaatje, nl. /var/services/web/copyright.png in de rechteronderhoek van een nieuw tijdelijk plaatje (/volume1/@tmp/photostation_tmp_xxx.jpg - Bedankt Freeze!) op basis van de originele (thumbnail)afbeelding wordt geplakt. Overigens is /var/services/web hetzelfde als /volume1/web . Je kan natuurlijk een andere lokatie kiezen: pas dan het script overeenkomstig aan!
Het plaatje in kwestie is een simpel png bestandje: zwarte tekst op een transparante achtergrond.
De tijdelijke afbeelding wordt na verzending naar de bezoeker automatisch verwijderd.

!BELANGRIJK OM TE WETEN!
- Het watermerk wordt alleen toegevoegd aan de afbeeldingen die via Photostation naar een bezoeker worden verzonden. Dit betekent dus dat de originele bestanden en thumbnails ONGEWIJZIGD blijven!
- Het watermerk wordt niet toegevoegd aan de hele kleine thumbnails in de overzichten. Leek mij niet zinvol. Ook video's worden niet meegenomen.
- Getest op DSM 2.3-1157 onder IE7 en Firefox 3
- Wijzigingen op eigen risico. Maak backups!
- Code met dank aan Brock Ferguson (http://articles.sitepoint.com/article/w ... images-php)
- Gooi de cache van je browser leeg, anders kan het zijn dat het net lijkt of er niets gewijzigd is.
- Herstelactie voor als het misgaat: plaats de in stap 1 gemaakte backup terug

Veel plezier er mee!

Wizjos
Wizjos.


DS409+    4 x WD10EADS DSM 4.2-3243       [TEST]
DS214play 1 x WD20EARX DSM 6.1.4-15217-3  [PROD]
DS1513+   5 x WD80EFZX DSM 6.1.4-15217-5  [PROD]
RT1900ac               SRM 1.1.6-6931-1   [PROD]


Is RAID hetzelfde als een backup?
Goeie schijven voor je NAS? Neem Western Digital!

Offline ffr

  • Bedankjes
  • -Gegeven: 1
  • -Ontvangen: 1
  • Berichten: 61
Re: Watermerk op foto's in Photostation 4
« Reactie #1 Gepost op: 03 juni 2011, 21:33:56 »
Beste wizjos

Heb het eens geprobeerd maar krijg het niet werkend.
Komt denk ik omdat je code niet voor de laatste versie is na de update van DSM.

Wellicht heb jij al een aangepaste versie?

Groet Fred
  • Mijn Synology: Ds209
  • HDD's: 2x1tb

Offline wizjos

  • Administrator
  • MVP
  • *
  • Bedankjes
  • -Gegeven: 122
  • -Ontvangen: 181
  • Berichten: 1.988
Re: Watermerk op foto's in Photostation 4
« Reactie #2 Gepost op: 04 juni 2011, 13:03:54 »
Citaat van: "ffr"
Beste wizjos

Heb het eens geprobeerd maar krijg het niet werkend.
Komt denk ik omdat je code niet voor de laatste versie is na de update van DSM.

Wellicht heb jij al een aangepaste versie?

Groet Fred
Ik ga 'm voor je nakijken... Kan wel even duren met dit mooie weer...

Groet,

Wizjos
Wizjos.


DS409+    4 x WD10EADS DSM 4.2-3243       [TEST]
DS214play 1 x WD20EARX DSM 6.1.4-15217-3  [PROD]
DS1513+   5 x WD80EFZX DSM 6.1.4-15217-5  [PROD]
RT1900ac               SRM 1.1.6-6931-1   [PROD]


Is RAID hetzelfde als een backup?
Goeie schijven voor je NAS? Neem Western Digital!

Offline Matr1x

  • Global Moderator
  • MVP
  • *
  • Bedankjes
  • -Gegeven: 257
  • -Ontvangen: 764
  • Berichten: 5.055
Re: Watermerk op foto's in Photostation 4
« Reactie #3 Gepost op: 04 juni 2011, 17:05:47 »
Citaat van: "wizjos"
Getest op DSM 2.3-1157 onder IE7 en Firefox 3
Getest met Windows 95? :mrgreen:
Ik denk dat iedereen inmiddels al wel op 3.1 zit en IE9 (in ieder geval IE8) gebruikt. Misschien kun je het daar ook eens onder testen?

P.S. We staan gelijk: beiden op 1002 berichten nu  :wink:
  • Mijn Synology: DS224+
  • HDD's: 2x HAT3300-4T
  • Extra's: MR2200ac / RT2600ac

Offline wizjos

  • Administrator
  • MVP
  • *
  • Bedankjes
  • -Gegeven: 122
  • -Ontvangen: 181
  • Berichten: 1.988
Re: Watermerk op foto's in Photostation 4
« Reactie #4 Gepost op: 18 september 2011, 16:42:55 »
De watermerk mod werkt ongewijzigd ook onder PhotoStation 5 (Ja Matrix, met Windows 7 en IE9... :mrgreen: )
Wizjos.


DS409+    4 x WD10EADS DSM 4.2-3243       [TEST]
DS214play 1 x WD20EARX DSM 6.1.4-15217-3  [PROD]
DS1513+   5 x WD80EFZX DSM 6.1.4-15217-5  [PROD]
RT1900ac               SRM 1.1.6-6931-1   [PROD]


Is RAID hetzelfde als een backup?
Goeie schijven voor je NAS? Neem Western Digital!

Offline cyrus1977

  • Global Moderator
  • MVP
  • *
  • Bedankjes
  • -Gegeven: 27
  • -Ontvangen: 54
  • Berichten: 1.529
    • http://www.bonaerial.nl
Re: Watermerk op foto's in Photostation 4
« Reactie #5 Gepost op: 02 september 2012, 10:05:33 »
Ook nu nog overigens (dsm4.1)
  • Mijn Synology: DS415
  • HDD's: 4
See http://www.bonaerial.nl
I am root. If you see me laughing, you better have a backup!
The beginning of knowledge is the discovery of something we do not understand.


 

Watermerk

Gestart door RIB RunnerBoard Photo Station / Photos

Reacties: 12
Gelezen: 2589
Laatste bericht 16 september 2016, 10:33:18
door HenkGroen
Watermerk in Photo Station, HELP!

Gestart door L4R5Board Photo Station / Photos

Reacties: 17
Gelezen: 3232
Laatste bericht 21 augustus 2017, 21:38:54
door Birdy
Watermerk op foto's in Photostation

Gestart door wizjosBoard Photo Station mods

Reacties: 9
Gelezen: 9809
Laatste bericht 18 maart 2010, 11:09:48
door GreyForceOne