PHP uploads van afbeeldingen watermerken
Maar goed, dit is het script waar ik momenteel gebruik van maak:
Quote:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
<?php
$target = "dev/images/";
$target = $target . basename( $_FILES['photo']['name']);
$title=$_POST['Title'];
$pic= basename ($_FILES['photo']['name']);
// Connects to the database
mysql_connect("localhost", "database", "password") or die(mysql_error());
mysql_select_db("database_database") or die(mysql_error()) ;
//Writes the information to the database
mysql_query("INSERT INTO images(Title, Link, Date, Filetype) VALUES ('$title', 'images/$pic', CURDATE(), 'afbeelding')");
mysql_query("INSERT INTO grabbelton(Link, Date) VALUES ('images/$pic', CURDATE())");
if($_FILES['photo']['type'] == "image/png" || $_FILES['photo']['type'] == "image/jpeg") {
//Writes the photo to the server
if(move_uploaded_file($_FILES['photo']['tmp_name'], $target))
{
echo "The file ". basename( $_FILES['uploadedfile']['name']). " has been uploaded, and your information has been added to the directory! <br />";
echo $title . "<br />";
echo $pic;
}
else {
echo "Sorry, there was a problem uploading your file.";
}
}
else {
echo "unsupport file format!";
}
?>
$target = "dev/images/";
$target = $target . basename( $_FILES['photo']['name']);
$title=$_POST['Title'];
$pic= basename ($_FILES['photo']['name']);
// Connects to the database
mysql_connect("localhost", "database", "password") or die(mysql_error());
mysql_select_db("database_database") or die(mysql_error()) ;
//Writes the information to the database
mysql_query("INSERT INTO images(Title, Link, Date, Filetype) VALUES ('$title', 'images/$pic', CURDATE(), 'afbeelding')");
mysql_query("INSERT INTO grabbelton(Link, Date) VALUES ('images/$pic', CURDATE())");
if($_FILES['photo']['type'] == "image/png" || $_FILES['photo']['type'] == "image/jpeg") {
//Writes the photo to the server
if(move_uploaded_file($_FILES['photo']['tmp_name'], $target))
{
echo "The file ". basename( $_FILES['uploadedfile']['name']). " has been uploaded, and your information has been added to the directory! <br />";
echo $title . "<br />";
echo $pic;
}
else {
echo "Sorry, there was a problem uploading your file.";
}
}
else {
echo "unsupport file format!";
}
?>
Wat moet ik veranderen zodat ik bijvoorbeeld 'watermark.png' onderaan een afbeelding kan plakken? Ik hoop dat jullie mij op weg kunnen helpen.
Ardjuna Veenstra op 24/10/2011 23:29:42:
Ik zit momenteel al een tijdje met een probleem dat ik maar niet opgelost krijg. In deze script worden afbeeldingen geupload en de locatie aangegeven. Ik ben nu bezig om een watermerk te plakken op afbeeldingen voor extra promotie van mijn website. Helaas begrijp ik er heel weinig van. Ik heb al een aantal dingen in php gemaakt maar dit is geheel nieuw voor mij. Ik heb al tientallen tutorials geprobeerd maar wordt er niet veel wijzer van.
Maar goed, dit is het script waar ik momenteel gebruik van maak:
Wat moet ik veranderen zodat ik bijvoorbeeld 'watermark.png' onderaan een afbeelding kan plakken? Ik hoop dat jullie mij op weg kunnen helpen.
Maar goed, dit is het script waar ik momenteel gebruik van maak:
Quote:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
<?php
$target = "dev/images/";
$target = $target . basename( $_FILES['photo']['name']);
$title=$_POST['Title'];
$pic= basename ($_FILES['photo']['name']);
// Connects to the database
mysql_connect("localhost", "database", "password") or die(mysql_error());
mysql_select_db("database_database") or die(mysql_error()) ;
//Writes the information to the database
mysql_query("INSERT INTO images(Title, Link, Date, Filetype) VALUES ('$title', 'images/$pic', CURDATE(), 'afbeelding')");
mysql_query("INSERT INTO grabbelton(Link, Date) VALUES ('images/$pic', CURDATE())");
if($_FILES['photo']['type'] == "image/png" || $_FILES['photo']['type'] == "image/jpeg") {
//Writes the photo to the server
if(move_uploaded_file($_FILES['photo']['tmp_name'], $target))
{
echo "The file ". basename( $_FILES['uploadedfile']['name']). " has been uploaded, and your information has been added to the directory! <br />";
echo $title . "<br />";
echo $pic;
}
else {
echo "Sorry, there was a problem uploading your file.";
}
}
else {
echo "unsupport file format!";
}
?>
$target = "dev/images/";
$target = $target . basename( $_FILES['photo']['name']);
$title=$_POST['Title'];
$pic= basename ($_FILES['photo']['name']);
// Connects to the database
mysql_connect("localhost", "database", "password") or die(mysql_error());
mysql_select_db("database_database") or die(mysql_error()) ;
//Writes the information to the database
mysql_query("INSERT INTO images(Title, Link, Date, Filetype) VALUES ('$title', 'images/$pic', CURDATE(), 'afbeelding')");
mysql_query("INSERT INTO grabbelton(Link, Date) VALUES ('images/$pic', CURDATE())");
if($_FILES['photo']['type'] == "image/png" || $_FILES['photo']['type'] == "image/jpeg") {
//Writes the photo to the server
if(move_uploaded_file($_FILES['photo']['tmp_name'], $target))
{
echo "The file ". basename( $_FILES['uploadedfile']['name']). " has been uploaded, and your information has been added to the directory! <br />";
echo $title . "<br />";
echo $pic;
}
else {
echo "Sorry, there was a problem uploading your file.";
}
}
else {
echo "unsupport file format!";
}
?>
Wat moet ik veranderen zodat ik bijvoorbeeld 'watermark.png' onderaan een afbeelding kan plakken? Ik hoop dat jullie mij op weg kunnen helpen.
Quotefail?
Kijk eens naar de GD library
http://www.sitemasters.be/tutorials/1/1/260/PHP/Gd_Library_Deel_1
Ziet er wel ingewikkeld uit.
edit:
Ik zie alleen maar broken images, zo ver was ik al. ;)
Gewijzigd op 25/10/2011 00:22:53 door Ardjuna Veenstra
Haal de header() in dat geval eens weg en je ziet meestal een PHP-error wat je wat meer mee kan.
‰PNG IHDR–È0KŠ&PLTEÿÿÿ§ÄÈIDATH‰íÁ1 õOm €· *çIEND®B`‚
Is het niet mogelijk om deze script toe te voegen met mijn eigen script?
http://www.codeforest.net/add-watermark-on-image-using-php
Of misschien deze:
http://www.weberdev.com/get_example.php3?ExampleID=4640
Gewijzigd op 25/10/2011 00:35:25 door Ardjuna Veenstra
http://www.youtube.com/watch?v=KvbvK9cnQaI&feature=relmfu
Heel erg duidelijk en ook heel goed te begrijpen tutorial. Hij is wel in het engels maar dat zou geen probleem moeten zijn sinds bijna elke programmeur uitstekend engels kan.
Heel erg duidelijk en ook heel goed te begrijpen tutorial. Hij is wel in het engels maar dat zou geen probleem moeten zijn sinds bijna elke programmeur uitstekend engels kan.
Gewijzigd op 25/10/2011 11:32:08 door Albert de Wit
Albert de Wit op 25/10/2011 11:28:29:
http://www.youtube.com/watch?v=KvbvK9cnQaI&feature=relmfu
Heel erg duidelijk en ook heel goed te begrijpen tutorial. Hij is wel in het engels maar dat zou geen probleem moeten zijn sinds bijna elke programmeur uitstekend engels kan.
Heel erg duidelijk en ook heel goed te begrijpen tutorial. Hij is wel in het engels maar dat zou geen probleem moeten zijn sinds bijna elke programmeur uitstekend engels kan.
Bof ik weer ff dat ik naar de middelbaar ben geweest. :p
Hopelijk worden mijn vragen beantwoord. Het liefst wil ik het zelf doen maar ben al zo lang bezig geweest dat het me meer irritatie dan voldoening oplevert.
Toevoeging op 25/10/2011 23:51:14:
Nope, dat is mijn vraag niet.
Ik wil weten hoe een script zoals deze:
Quote:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
<?php
function watermark($sourcefile, $watermarkfile, $saveFile)
{
#
# $sourcefile = Filename of the picture to be watermarked.
# $watermarkfile = Filename of the 24-bit PNG watermark file.
#
//Get the resource ids of the pictures
$watermarkfile_id = imagecreatefrompng($watermarkfile);
imageAlphaBlending($watermarkfile_id, false);
imageSaveAlpha($watermarkfile_id, true);
$fileType = strtolower(substr($sourcefile, strlen($sourcefile)-3));
switch($fileType)
{
case('gif'):
$sourcefile_id = imagecreatefromgif($sourcefile);
break;
case('png'):
$sourcefile_id = imagecreatefrompng($sourcefile);
break;
default:
$sourcefile_id = imagecreatefromjpeg($sourcefile);
}
//Get the sizes of both pix
$sourcefile_width=imageSX($sourcefile_id);
$sourcefile_height=imageSY($sourcefile_id);
$watermarkfile_width=imageSX($watermarkfile_id);
$watermarkfile_height=imageSY($watermarkfile_id);
if(isset($_REQUEST['imgPhoto_x']))
{
$dest_x = $_REQUEST['imgPhoto_x'];
$dest_y = $_REQUEST['imgPhoto_y'];
}
else
{
$dest_x = ( $sourcefile_width / 2 ) - ( $watermarkfile_width / 2 );
$dest_y = ( $sourcefile_height / 2 ) - ( $watermarkfile_height / 2 );
}
// if a gif, we have to upsample it to a truecolor image
if($fileType == 'gif')
{
// create an empty truecolor container
$tempimage = imagecreatetruecolor($sourcefile_width,$sourcefile_height);
// copy the 8-bit gif into the truecolor image
imagecopy($tempimage, $sourcefile_id, 0, 0, 0, 0,$sourcefile_width, $sourcefile_height);
// copy the source_id int
$sourcefile_id = $tempimage;
}
imagecopy($sourcefile_id, $watermarkfile_id, $dest_x, $dest_y, 0, 0,$watermarkfile_width, $watermarkfile_height);
//Create a jpeg out of the modified picture
switch($fileType)
{
// remember we don't need gif any more, so we use only png or jpeg.
// See the upsaple code immediately above to see how we handle gifs
case('png'):
//header("Content-type: image/png");
imagepng ($sourcefile_id);
break;
default:
//header("Content-type: image/jpg");
if(imagejpeg ($sourcefile_id,$saveFile))
{
}
//echo "<img src='$saveFile'>";
}
imagedestroy($sourcefile_id);
imagedestroy($watermarkfile_id);
return true;
}
?>
function watermark($sourcefile, $watermarkfile, $saveFile)
{
#
# $sourcefile = Filename of the picture to be watermarked.
# $watermarkfile = Filename of the 24-bit PNG watermark file.
#
//Get the resource ids of the pictures
$watermarkfile_id = imagecreatefrompng($watermarkfile);
imageAlphaBlending($watermarkfile_id, false);
imageSaveAlpha($watermarkfile_id, true);
$fileType = strtolower(substr($sourcefile, strlen($sourcefile)-3));
switch($fileType)
{
case('gif'):
$sourcefile_id = imagecreatefromgif($sourcefile);
break;
case('png'):
$sourcefile_id = imagecreatefrompng($sourcefile);
break;
default:
$sourcefile_id = imagecreatefromjpeg($sourcefile);
}
//Get the sizes of both pix
$sourcefile_width=imageSX($sourcefile_id);
$sourcefile_height=imageSY($sourcefile_id);
$watermarkfile_width=imageSX($watermarkfile_id);
$watermarkfile_height=imageSY($watermarkfile_id);
if(isset($_REQUEST['imgPhoto_x']))
{
$dest_x = $_REQUEST['imgPhoto_x'];
$dest_y = $_REQUEST['imgPhoto_y'];
}
else
{
$dest_x = ( $sourcefile_width / 2 ) - ( $watermarkfile_width / 2 );
$dest_y = ( $sourcefile_height / 2 ) - ( $watermarkfile_height / 2 );
}
// if a gif, we have to upsample it to a truecolor image
if($fileType == 'gif')
{
// create an empty truecolor container
$tempimage = imagecreatetruecolor($sourcefile_width,$sourcefile_height);
// copy the 8-bit gif into the truecolor image
imagecopy($tempimage, $sourcefile_id, 0, 0, 0, 0,$sourcefile_width, $sourcefile_height);
// copy the source_id int
$sourcefile_id = $tempimage;
}
imagecopy($sourcefile_id, $watermarkfile_id, $dest_x, $dest_y, 0, 0,$watermarkfile_width, $watermarkfile_height);
//Create a jpeg out of the modified picture
switch($fileType)
{
// remember we don't need gif any more, so we use only png or jpeg.
// See the upsaple code immediately above to see how we handle gifs
case('png'):
//header("Content-type: image/png");
imagepng ($sourcefile_id);
break;
default:
//header("Content-type: image/jpg");
if(imagejpeg ($sourcefile_id,$saveFile))
{
}
//echo "<img src='$saveFile'>";
}
imagedestroy($sourcefile_id);
imagedestroy($watermarkfile_id);
return true;
}
?>
Moet toegvoegen aan mijn upload script. Ik heb geen idee hoe ik moet aangeven dat de geuploade image moet worden toegevoegd.