Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

[PHP] .png excluden uit script voor watermerken

Pagina: 1
Acties:
  • 223 views

  • X0X Chevy X0X
  • Registratie: Juni 2009
  • Laatst online: 20-10 22:09
Hallo allemaal,

ik heb een PHP script gevonden om watermerken te laten generen op afbeeldingen op mijn website.

het script werkt goed echter 1 probleem.

hij doet iets met mijn .png bestanden zoals logo van website waardoor ze niet meer transparant zijn.

de afbeeldingen waar hij een watermerk op moet zetten zijn .jpg bestanden en hij moet dus eigenlijk mijn .png bestanden ongemoeid laten.

is er een manier om in dit script .png extenties te excluden of iets dergelijks?

zo hoort het te zijn:
http://prntscr.com/9xlth

en dit maakt hij ervan na het script:
http://prntscr.com/9xlvu

het gaat om de website, roffel-foto.nl

alvast bedankt.


<?php

//we tell the server to treat this file as if it wore an image
header('Content-type: image/jpeg');
//image file path
$img = $_GET['src'];
//watermark position
$p = $_GET['p']; if(!$p) $p = 'br';
/*
p can be anything from the following list:
tl = top left
tc = top center
tr = top right
cl = center left
c = center of the image
cr = center right
bl = bottom left
bc = bottom center
br = bottom right
*/
//watermarked image quality
$q = $_GET['q'];
//if the quality field is missing or is not on the 0 to 100 scale then we set the quality to 93
if(!$q || $q<0 || $q>100) $q = '93';
$filetype = substr($img,strlen($img)-4,4);
$filetype = strtolower($filetype);
if($filetype == ".gif") $image = @imagecreatefromgif($img);
if($filetype == ".jpg") $image = @imagecreatefromjpeg($img);
if($filetype == ".png") $image = @imagecreatefrompng($img);

if (!$image) die();
//getting the image size for the original image
$img_w = imagesx($image);
$img_h = imagesy($image);
/*
//if the filename has 150x150 in it's name then we don't apply the watermark
if (eregi("150x150", $img)) {
imagejpeg($image, null, $q); die();
} else {
$watermark = @imagecreatefrompng('watermark.png');
}
*/
//if you want to use the watermark only on bigger images then use this instead of the condition above
if ($img_w < "3000") {//if image width is less then 150 pixels
imagejpeg($image, null, $q); die();
} else {
$watermark = @imagecreatefrompng('watermark.png');
}

//getting the image size for the watermark
$w_w = imagesx($watermark);
$w_h = imagesy($watermark);
if($p == "tl") {
$dest_x = 0;
$dest_y = 0;
} elseif ($p == "tc") {
$dest_x = ($img_w - $w_w)/2;
$dest_y = 0;
} elseif ($p == "tr") {
$dest_x = $img_w - $w_w;
$dest_y = 0;
} elseif ($p == "cl") {
$dest_x = 0;
$dest_y = ($img_h - $w_h)/2;
} elseif ($p == "c") {
$dest_x = ($img_w - $w_w)/2;
$dest_y = ($img_h - $w_h)/2;
} elseif ($p == "cr") {
$dest_x = $img_w - $w_w;
$dest_y = ($img_h - $w_h)/2;
} elseif ($p == "bl") {
$dest_x = 0;
$dest_y = $img_h - $w_h;
} elseif ($p == "bc") {
$dest_x = ($img_w - $w_w)/2;
$dest_y = $img_h - $w_h;
} elseif ($p == "br") {
$dest_x = $img_w - $w_w;
$dest_y = $img_h - $w_h;
}
imagecopy($image, $watermark, $dest_x, $dest_y, 0, 0, $w_w, $w_h);
imagejpeg($image, null, $q);
imagedestroy($image);
imagedestroy($watermark);
?>

  • scorpie
  • Registratie: Augustus 2001
  • Laatst online: 19:49

scorpie

Supra Addict

if($filetype == ".png") $image = @imagecreatefrompng($img);

weghalen..? Maar sowieso lijkt me dit niet de meest veilige manier om mee te werken..

wil een Toyota Supra mkIV!!!!! | wil een Yamaha YZF-R{1,6} | wil stiekem ook een Ducati
"Security is just a state of mind"
PSN: scorpie | Diablo 3: scorpie#2470


  • NMe
  • Registratie: Februari 2004
  • Laatst online: 20-11 11:59

NMe

Quia Ego Sic Dico.

Sorry, maar je mag zelf ook wat moeite doen. Je hebt het script in de eerste instantie al niet zelf geschreven, en nu verwacht je ook nog eens dat wij het voor je op maat gaan maken? Ja doei. ;) Dit nog naast het feit dat dit script zo te zien nogal wat te wensen overlaat...

Zie ook De Quickstart en Programming FAQ - Scriptrequests.

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Dit topic is gesloten.