Watermerk bij geuploade foto
SimonDW - 30/12/2012 15:51
Nieuw lid
Ik gebruik volgend script voor het uploaden van foto's bij nieuwsartikeltjes op onze site. Scriptje doet upload, resize en schrijft het weg in de database.
Nu zou ik graag 'n PNG logo als watermerk willen gebruiken, maar zit een beetje vast.
Iemand een idee om het bestaande script uit te breiden met watermerk mogelijkheden?
<?
include("database.php");
if (!$submit) {
?>
<link rel="stylesheet" href="style.css" type="text/css">
<body bgcolor="#DEE3E7" link="#3A76B1" vlink="#3A76B1" alink="#3A76B1" text="#000000">
<link rel="stylesheet" href="style.css" type="text/css">
<FORM ENCTYPE="multipart/form-data" ACTION="upload_foto.php" METHOD=POST>
<table width="600" border="0" cellspacing="0" cellpadding="0" align="center">
<tr>
<td width="600" nowrap><b><font color="#000000">.:: Foto <?print("$fotonr")?> uploaden</font></b></td>
</tr>
<tr>
<td width="600" nowrap align="center" valign="top" height="23"><div align="left">De foto's zullen worden geplaatst op het volgende adres:<br>
<b><? echo "$foto_url" ?></b><br>
<br>
<br>
<input type="hidden" name="id" value="<?print("$id")?>" class="form">
<input type="hidden" name="scat" value="<?print("$scat")?>" class="form">
<input type="hidden" name="fotonr" value="<?print("$fotonr")?>" class="form">
Plaats volgende afbeelding / foto:<br>
<input name="userfile" type="file" class="form" size="35">
<br>
<br>
<input type="submit" value="Verstuur Bestand" name="submit" class="form">
</div></td>
</tr>
</table>
</FORM>
<?
} else {
//
if (isset($_FILES['userfile'])) {
//De groote van het bestand vergelijken met het maximum
if ($_FILES['userfile']['type'] > 302400){
exit("Je bestand " . $_FILES['userfile']['size'] . " bytes, het maximum toegelaten is 302400 bytes");
}
if($_FILES['userfile']['type'] == "image/jpeg" || $_FILES['userfile']['type'] == "image/pjpeg") {
$x = strtolower(substr($_FILES['userfile']['name'], -3));
// De naam van de file veranderen in bv. image0
$file_name = "afbeelding_";
$n = 0;
// Check of file al bestaat, zo ja, filename verhogen
while (file_exists('../fotos/' . $file_name . $n . '.' . $x))
{
$n = $n + 1;
}
$file_name = $file_name . $n;
move_uploaded_file($_FILES['userfile']['tmp_name'],'../fotos/' . $file_name . '.' . $x);
chmod ('../fotos/' . $file_name . '.' . $x, 0777);
//kiezen
$b = imagecreatefromjpeg('../fotos/' . $file_name . '.' . $x) or die ("JPG probleem. Selecteer een andere foto aub.");
$bx = imagesx($b); // Bron breedte
$by = imagesy($b); // bron hoogte
$lm = $b;
$width=600;
$temp=$bx/600;
$height=$by/$temp;
if ($bx > $width) {
$lm1 = imagecreatetruecolor($width ,$height) or die ("Probleem met maken van de JPG afbeelding.");
imagecopyresampled($lm1, $lm, 0, 0, 0, 0, $width, $height, $bx, $by);
Imagejpeg($lm1,'../fotos/' . $file_name . '.' . $x,80); //80 is jpg kwaliteit
imageDestroy($lm1);
imageDestroy($lm);
}
$query = "UPDATE nieuws SET foto$fotonr='$file_name.jpg' WHERE id='$id'";
$result = mysql_query($query) or die ("Fout, foto werd niet opgeslagen.");
header ("Location: index.php?module=nieuws");
} else {
echo "Het bestandsformaat wordt niet ondersteund.<br>Alleen JPG (jpg) wordt toegelaten.";
}
}
}
?>
<?
include ( "database.php" ) ;
if ( ! $submit ) {
?>
<link rel="stylesheet" href="style.css" type="text/css">
<body bgcolor="#DEE3E7" link="#3A76B1" vlink="#3A76B1" alink="#3A76B1" text="#000000">
<link rel="stylesheet" href="style.css" type="text/css">
<FORM ENCTYPE="multipart/form-data" ACTION="upload_foto.php" METHOD=POST>
<table width="600" border="0" cellspacing="0" cellpadding="0" align="center">
<tr>
<td width="600" nowrap><b><font color="#000000">.:: Foto
< ?
print ( "$fotonr " ) ?> uploaden</font></b></td>
</tr>
<tr>
<td width="600" nowrap align="center" valign="top" height="23"><div align="left">De foto's zullen worden geplaatst op het volgende adres:<br>
<b>
<? echo "$foto_url " ?> </b><br>
<br>
<br>
<input type="hidden" name="id" value="
< ?
print ( "$id " ) ?> " class="form">
<input type="hidden" name="scat" value="
< ?
print ( "$scat " ) ?> " class="form">
<input type="hidden" name="fotonr" value="
< ?
print ( "$fotonr " ) ?> " class="form">
Plaats volgende afbeelding / foto:<br>
<input name="userfile" type="file" class="form" size="35">
<br>
<br>
<input type="submit" value="Verstuur Bestand" name="submit" class="form">
</div></td>
</tr>
</table>
</FORM>
<?
} else {
//
if ( isset ( $_FILES [ 'userfile' ] ) ) { //De groote van het bestand vergelijken met het maximum
if ( $_FILES [ 'userfile' ] [ 'type' ] > 302400 ) {
exit ( "Je bestand " . $_FILES [ 'userfile' ] [ 'size' ] . " bytes, het maximum toegelaten is 302400 bytes" ) ; }
if ( $_FILES [ 'userfile' ] [ 'type' ] == "image/jpeg" || $_FILES [ 'userfile' ] [ 'type' ] == "image/pjpeg" ) {
// De naam van de file veranderen in bv. image0
$file_name = "afbeelding_" ;
$n = 0 ;
// Check of file al bestaat, zo ja, filename verhogen
while ( file_exists ( '../fotos/' . $file_name . $n . '.' . $x ) ) {
$n = $n + 1 ;
}
$file_name = $file_name . $n ;
chmod ( '../fotos/' . $file_name . '.' . $x , 0777 ) ; //kiezen
$b = imagecreatefromjpeg
( '../fotos/' . $file_name . '.' . $x ) or
die ( "JPG probleem. Selecteer een andere foto aub." ) ; $bx = imagesx( $b ) ; // Bron breedte
$by = imagesy( $b ) ; // bron hoogte
$lm = $b ;
$width = 600 ;
$temp = $bx / 600 ;
$height = $by / $temp ;
if ( $bx > $width ) {
$lm1 = imagecreatetruecolor
( $width , $height ) or
die ( "Probleem met maken van de JPG afbeelding." ) ; imagecopyresampled( $lm1 , $lm , 0 , 0 , 0 , 0 , $width , $height , $bx , $by ) ;
Imagejpeg( $lm1 , '../fotos/' . $file_name . '.' . $x , 80 ) ; //80 is jpg kwaliteit
imageDestroy( $lm1 ) ;
imageDestroy( $lm ) ;
}
$query = "UPDATE nieuws SET foto$fotonr ='$file_name .jpg' WHERE id='$id '" ;
$result = mysql_query ( $query ) or
die ( "Fout, foto werd niet opgeslagen." ) ; header ( "Location: index.php?module=nieuws" ) ; } else {
echo "Het bestandsformaat wordt niet ondersteund.<br>Alleen JPG (jpg) wordt toegelaten." ; }
}
}
?>
3 antwoorden
Gesponsorde links
GroundZero - 30/12/2012 21:20
Lid
$aap = imagecreatefrompng("vb-pic.png");
$aapBreed = imagesx($aap);
$aapHoog = imagesy($aap);
$watermerk = imagecreatefrompng("vb-pic-4.png");
$watermerkBreed = imagesx($watermerk);
$watermerkHoog = imagesy($watermerk);
//
$color = ImageColorAllocate($watermerk, 255, 255, 255);
ImageColorTransparent($watermerk, $color);
//
imagecopymerge($aap, $watermerk, ($aapBreed - $watermerkBreed), ($aapHoog - $watermerkHoog), 0, 0, 200, 16, 100);
imagepng($aap);
imagedestroy($aap);
$aap = imagecreatefrompng( "vb-pic.png" ) ;
$aapBreed = imagesx( $aap ) ;
$aapHoog = imagesy( $aap ) ;
$watermerk = imagecreatefrompng( "vb-pic-4.png" ) ;
$watermerkBreed = imagesx( $watermerk ) ;
$watermerkHoog = imagesy( $watermerk ) ;
//
$color = ImageColorAllocate( $watermerk , 255 , 255 , 255 ) ;
ImageColorTransparent( $watermerk , $color ) ;
//
imagecopymerge( $aap , $watermerk , ( $aapBreed - $watermerkBreed ) , ( $aapHoog - $watermerkHoog ) , 0 , 0 , 200 , 16 , 100 ) ;
imagepng( $aap ) ;
imagedestroy( $aap ) ;
SimonDW - 04/01/2013 15:46
Nieuw lid
Thanks, heb het proberen te integreren in m'n bestaande scirpt: zonder resultaat...
marten - 04/01/2013 15:56
Beheerder
Wil je uitgebreide error meldingen aanzetten? :
error_reporting(E_ALL);
ini_set('display_errors', 1);
Gesponsorde links
Je moet ingelogd zijn om een reactie te kunnen posten.