Watermerk + resize

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Shakes

Shakes

08/10/2006 17:54:00
Quote Anchor link
Er staat al ergens een script maar dan moet ik mijn eigen code volledig aanpassen... Hoe kan dit beter?

Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
<?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);      
?>


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!
 
PHP hulp

PHP hulp

18/04/2024 14:58:01
 
Shakes

Shakes

08/10/2006 19:17:00
Quote Anchor link
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?
 
Bart van der veen

bart van der veen

08/10/2006 20:26:00
Quote Anchor link
ja dat klopt, dit hangt in essentie af van de originele kwaliteit van de jpg.

anders ff deze regel aanpassen
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?
ImageJpeg($create_blank,$destination . $uploaded,100); // 100 terugbrengen naar 75 bijvoorbeeld
?>
 
Shakes

Shakes

09/10/2006 18:38:00
Quote Anchor link
Thanks! Maakt dat heel veel uit qua kwaliteit?
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.