Watermerk + resize
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
// Het watermerk
$path_watermerk = "watermerk.png";
$watermerk = imagecreatefrompng($path_watermerk);
$watermerk_width = imagesx($watermerk);
$watermerk_height = imagesy($watermerk);
//--- Het plaatje
$image = imagecreatefromjpeg($destination . $uploaded);
imagealphablending($image, TRUE);
$size = getimagesize($destination . $uploaded);
//--- Zet het watermerk rechtsonder neer.
$xas = $size[0] - $watermerk_width - 5;
$yas = $size[1] - $watermerk_height - 5;
//--- Watermerk toevoegen
imagecopymerge($image, $watermerk, $xas, $yas, 0, 0, $watermerk_width, $watermerk_height, 50);
//--- Uploaden die zooi
imagejpeg($image, $destination . $uploaded, 100); // max. kwaliteit
imagedestroy($image);
imagedestroy($watermerk);
$photo = imagecreatefromjpeg ($destination . $uploaded);
//afmetingen bepalen
$source_x = imagesx($photo);
$source_y = imagesy($photo);
$target_x = 600;
$target_y = 480;
//als foto te hoog is
if (($source_x/$target_x) < ($source_y/$target_y))
{
//echo "te hoog";
$from_y = ceil(($source_y - ($target_y * $source_x / $target_x))/2);
$from_x = '0';
$source_used_y = ceil(($target_y * $source_x / $target_x));
$source_used_x = $source_x;
}
//als foto te breed is
if (($source_y/$target_y) < ($source_x/$target_x))
{
//echo "te breed";
$from_x = ceil(($source_x - ($target_x * $source_y / $target_y))/2);
$from_y = '0';
$source_used_x = ceil(($target_x * $source_y / $target_y));
$source_used_y = $source_y;
}
//als verhoudingen gelijk zijn
if (($source_x/$target_x) == ($source_y/$target_y))
{
$from_x = '0';
$from_y = '0';
$source_used_x = $source_x;
$source_used_y = $source_y;
}
//nieuwe image maken en wegschrijven naar dir
$create_blank = imagecreatetruecolor ($target_x, $target_y);
imagecopyresampled ($create_blank, $photo, 0, 0, $from_x, $from_y, $target_x, $target_y, $source_used_x, $source_used_y);
ImageJpeg($create_blank,$destination . $uploaded,100);
Imagedestroy($photo);
?>
// Het watermerk
$path_watermerk = "watermerk.png";
$watermerk = imagecreatefrompng($path_watermerk);
$watermerk_width = imagesx($watermerk);
$watermerk_height = imagesy($watermerk);
//--- Het plaatje
$image = imagecreatefromjpeg($destination . $uploaded);
imagealphablending($image, TRUE);
$size = getimagesize($destination . $uploaded);
//--- Zet het watermerk rechtsonder neer.
$xas = $size[0] - $watermerk_width - 5;
$yas = $size[1] - $watermerk_height - 5;
//--- Watermerk toevoegen
imagecopymerge($image, $watermerk, $xas, $yas, 0, 0, $watermerk_width, $watermerk_height, 50);
//--- Uploaden die zooi
imagejpeg($image, $destination . $uploaded, 100); // max. kwaliteit
imagedestroy($image);
imagedestroy($watermerk);
$photo = imagecreatefromjpeg ($destination . $uploaded);
//afmetingen bepalen
$source_x = imagesx($photo);
$source_y = imagesy($photo);
$target_x = 600;
$target_y = 480;
//als foto te hoog is
if (($source_x/$target_x) < ($source_y/$target_y))
{
//echo "te hoog";
$from_y = ceil(($source_y - ($target_y * $source_x / $target_x))/2);
$from_x = '0';
$source_used_y = ceil(($target_y * $source_x / $target_x));
$source_used_x = $source_x;
}
//als foto te breed is
if (($source_y/$target_y) < ($source_x/$target_x))
{
//echo "te breed";
$from_x = ceil(($source_x - ($target_x * $source_y / $target_y))/2);
$from_y = '0';
$source_used_x = ceil(($target_x * $source_y / $target_y));
$source_used_y = $source_y;
}
//als verhoudingen gelijk zijn
if (($source_x/$target_x) == ($source_y/$target_y))
{
$from_x = '0';
$from_y = '0';
$source_used_x = $source_x;
$source_used_y = $source_y;
}
//nieuwe image maken en wegschrijven naar dir
$create_blank = imagecreatetruecolor ($target_x, $target_y);
imagecopyresampled ($create_blank, $photo, 0, 0, $from_x, $from_y, $target_x, $target_y, $source_used_x, $source_used_y);
ImageJpeg($create_blank,$destination . $uploaded,100);
Imagedestroy($photo);
?>
Nu gaat het nogal omslachtig. Komt omdat ik eerst enkel een watermerk toevoegde maar om de plaatjes te verkleinen (vooral om ruimte op server te besparen) wil ik ze ook verkleinen. Nu doet hij nogal dubbel werk maar anders krijg ik het niet werkend!
Kwam er nu ook pas achter dat zonder verkleinen maar slechts met toevoegen van watermerk (watermerk is maar 2kb) de foto's van 500kb naar 900kb gingen... bijna een verdubbeling. Is dat normaal?
anders ff deze regel aanpassen
Thanks! Maakt dat heel veel uit qua kwaliteit?