[script review] CLASS: Watermerk (Zoals 1001 anderen)

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

C# .NET Developer

Functie omschrijving Ben jij op zoek naar een nieuwe uitdaging binnen development waar je komt te werken binnen een flexibel, jong en ondernemend bedrijf. Lees dan snel verder! Voor deze functie zoeken wij een C# .NET Developer die enthousiast wordt van het aansluiten en begeleiden van (complexe) nieuwe klanten. Daarnaast begeleid je complexe projecten, wij zoeken iemand die altijd kansen ziet en waarbij het glas altijd half vol is. Voor deze functie zoeken wij een Developer met ervaring op het gebied van .NET die deze organisatie gaat versterken. Binnen de organisatie ga jij je vooral bezighouden met het verbeteren van

Bekijk vacature »

Java Developer

Java Developers opgelet! Bij Luminis zijn ze opzoek naar jou. Lees de vacature en solliciteer direct. Luminis is een software- en technologiebedrijf met meerdere vestigingen. Vanuit deze vestigingen werken 200 professionals aan technisch hoogwaardige oplossingen voor klanten zoals KLM, Nike en Bol.com. Ook ontwikkelt Luminis eigen oplossingen op het gebied van cloud, Internet of Things, data intelligence, e-sports en e-learning. Luminis onderscheidt zich door aantoonbaar voorop te lopen in technologie en innovatie. Luminis heeft drie kernpunten die verankerd zitten in alles wat we doen: het omarmen van nieuwe technologie, meesterschap en kennis delen. Functiebeschrijving First things first! Het is belangrijk

Bekijk vacature »

Front-end Developer - Juniorfunctie

Functie omschrijving Ben jij op zoek naar een uitdagende baan als front-end developer, in een informele werksfeer, waar jij echt het verschil kan maken? Wil jij graag werken voor een bedrijf dat sportiviteit en een open communicatie, hoog in het vaandel heeft staan? Dan hebben wij de perfecte vacature voor je! Voor een klein bedrijf in Rijen dat gespecialiseerd is in het omzetten van digitale woningtekeningen naar managementinformatie, zijn wij per direct op zoek naar een allround front-end developer. Jouw werkzaamheden zien er als volgt uit: Ja gaat nauw samenwerken met de back-end developer. De database structuur is volledig gebouwd

Bekijk vacature »

Lead Fullstack developer

Functie omschrijving Ben jij een leergierige en ambitieuze junior developer met technische skills? Ben jij op zoek naar een werkgever die jouw de volledige vrijheid geeft om jezelf tot een volwaardige senior te ontwikkelen? Wij zijn op zoek naar een full stack developer die zich bezig wil bezig houden met het uitbreiden en verbeteren van de online webshop. Een onderdeel van jouw werkzaamheden is naast het beheren van de webshop ook om de processen en structuren te stroomlijnen. Werkzaamheden Onderhouden van de webshop (denk aan het bijhouden van de voorraad); Nieuwe functies toevoegen aan de product configurator door middel van

Bekijk vacature »

Oracle Apex Developer

Dit ga je doen Jouw taken bestaan uit: Het bouwen maatwerk Oracle applicaties voor Europese business units; Het implementeren van de nieuwste technieken om te blijven innoveren; Actief meedenken en aandragen van verbetervoorstellen. Hier ga je werken Deze organisatie in de regio Veenendaal is een van wereld grootste retailers met ruim 16.000 winkels in 27 markten en jaarlijks ruim 5,3 miljard klanten die winkelen bij een van hun welbekende retailmerken. Binnen de organisatie is er een IT Group actief die dient als IT Service Provider voor de hele organisatie en waar dagelijks IT'ers werken aan state-of-the-art IT oplossingen. Dit doen

Bekijk vacature »

C#.NET Developer Jr. Functie

Functie omschrijving Bouw jij graag aan applicaties om processen in distributiecentra te optimaliseren? Wij zijn op zoek naar een C#.NET ontwikkelaar in regio Breda die hier graag een steentje aan bijdraagt! Jouw werkzaamheden zullen er als volgt uitzien: Je krijgt veel vrijheid in de keuze van de technieken die je gaat gebruiken. Uiteraard wel binnen de gestelde kaders, en door gebruik te maken van het .NET platform. Je gaat aan de slag met de ontwikkeling van een nieuwe module binnen de WMS suite van dit bedrijf. Deze "carrier" module gaat er voor zorgen dat de selectie van een vervoerder volledig

Bekijk vacature »

.NET developer

Functie As a .NET developer you work together in a multidisciplinary development team with 1-2 Senior .NET developers, two front-end developers, Data Scientists and one UX designer. As a team you work on developing a Cloud based application and making this application more stable. Unit testing will also become very important in your new position. Together with the Senior .NET developer you will be responsible for developing the API. You work with a lot of data and occasionally there will also be data issues and some queries will have to be run. This means that you will work a lot

Bekijk vacature »

C# developer

Functie Als ervaren Software Engineer wordt jij verantwoordelijk voor het bedenken en ontwikkelen van technische (maatwerk) oplossingen voor onze klanten en dit samen met de klant af te stemmen. Jij wordt o.a. verantwoordelijk voor de doorontwikkeling het software pakket welke voor ons enorm belangrijk is. Dit pakket zorgt er namelijk voor dat wij complete productielijnen kunnen aansturen en monitoren. Daarnaast heb jij actief contact met onze hoofdvestiging om het software achter een van onze systemen te verbeteren en te herschrijven. Momenteel zijn onze C# applicaties geschreven met o.a. Winforms. Echter hebben wij de actieve ambitie om dit te gaan herschrijven

Bekijk vacature »

Ervaren C#.NET developer

Functieomschrijving We zijn op zoek naar een ervaren C#.NET programmeur voor een moderne werkgever in de regio Prinsenbeek. Als programmeur zal je bezig zijn met het ontwikkelen van op maat gemaakte webapplicaties voor verschillende klanten, waarbij je ervoor zorgt dat complexe processen zo goed mogelijk worden ondersteund. Je takenpakket omvat onder andere: Werken met databases en dataopslagoplossingen, implementeren van beveiligingsoplossingen en het waarborgen van de beveiliging van applicaties en gegevens, evenals het schrijven van technische documentatie en gebruikershandleidingen. Het ontwikkelen en onderhouden van C#.NET-applicaties. Bijdragen aan het ontwerp en de architectuur van softwaretoepassingen. Het schrijven van hoogwaardige en herbruikbare codes.

Bekijk vacature »

Junior .NET developer

Functie Ons programma is voor afgestudeerde enthousiastelingen die het als een uitdaging zien om met een klein dynamisch team bij de grootste bedrijven van Nederland aan de slag te gaan. Tijdens jouw dienstverband word jij begeleid door een talent manager. Het ontwikkelen van jouw talent staat hierbij centraal. Het programma doorloop je met een team van circa 8 Mede- trainees. De eerste maand start je met een fulltime inhouse opleiding. Deze staat geheel in het teken van de werkzaamheden die jij verder in het programma zult uitvoeren. Na deze opleidingsmaand ga je aan de slag in een dynamische omgeving bij

Bekijk vacature »

Randstad B.V.- Freelance Senior Fullstack Develope

Startdatum: 01.05.2023 Richttarief: € 75,00 - €85,00 Duur van de opdracht: 1 jaar Uren per week: 40 Werkmodel: Hybride, dinsdag en donderdag aanwezig op kantoor in Diemen en meer wanneer dit nodig is. Functieomschrijving: De ideale kandidaat gaat onderdeel uitmaken van een junior team binnen het foundation domein. Vanuit het foundation domein werkt dit team samen met andere foundation teams en teams uit het online domein (professionals B2B en B2C) voor het bouwen en integreren van HRM functionaliteiten (verlof en benefits) in de persoonlijke portal van Interim Professionals. Er is meer backend werk dan frontend, maar kandidaat moet beiden leuk

Bekijk vacature »

PHP Developer

Functie Middels Scrum en sprints bouw jij in deze functie mee aan complexe webapplicaties en ons SaaS platform. Hierbij hoort ook architectuur tot een van je taken. Daarnaast ben je één van de leden van het Scrum team. Dat betekent dat je naast je kerntaken ook in contact staat met de product owner. Oftewel, je bent bij het gehele ontwikkelproces betrokken. Tools die hierbij gebruikt worden zijn o.a. PHP, Symfony en Git. Eisen • Minimaal HBO werk- en denkniveau • Minimaal 3 jaar aantoonbare ervaring met PHP • Kennis en ervaring Symfony (Laravel is pré) & Lando • Kennis van

Bekijk vacature »

Front end developer

Functie Jij als front end developer gaat werken binnen de teams van onze klant, uiteraard met alle moderne technieken. Opdrachten worden echt gericht op jouw leerdoelen en jouw behoeftes. Wij hebben een omgeving gecreëerd waarin je echt jezelf kan zijn en waar echt gekeken wordt naar jouw voorkeuren. Maak je een fout? Geen probleem, leer ervan en dan ga weer door. Door de variëteit aan werk kun je in verschillende omgevingen een kijkje nemen en dus jezelf snel ontwikkelen. Eisen Je bent communicatief vaardig en houdt van een dynamische omgeving Je hebt HBO werk- en denkniveau Je hebt gedegen kennis

Bekijk vacature »

Java Developer (Training And Simulation)

Wat jij doet Je zou onze Java Developer zijn en nauw samenwerken met je Product Owner, Software System Engineer, Scrum Master en andere Developers. Samen draag je bij aan een multidisciplinair en zelf organiserend Agile team. De rol is zeer afwisselend en bestaat uit, maar is zeker niet beperkt tot: de-risk en prototype onbewezen simulatietechnologieën; simulatiekaders ontwikkelen voor gebruik door andere teams; je bent goed in het begrijpen van ingewikkelde ideeën; heeft de mogelijkheid om nauw samen te werken met grote internationale klanten, leveranciers en overheden om onze oplossingen, vastleggingsvereisten, enz. te definiëren en te presenteren. Ben jij het? Wij

Bekijk vacature »

Medior/senior front end developer

Functie Vanwege de groei binnen het bedrijf zijn we op zoek naar versterking in het development team. Als back-end developer bouw je aan de bedrijfssoftware die ons helpt bij de primaire processen. Een leuk (intern) project dus waarbij je de software continu doorontwikkeld! Je werkt in een klein team, we hebben dagelijks stand-ups en iedere twee weken een scrum-sessie, begeleid door onze Scrum Master. Hierin krijg je uitgebreid de kans om je ideeën te presenteren, en te overleggen met je mede-ontwikkelaars en de Product Owner. Binnen de ontwikkelteams gebruiken we Trello, Gitlab, Jiira, Confluence en Boockstack. Hiernaast werken ze met

Bekijk vacature »

Pagina: 1 2 volgende »

G P

G P

09/01/2012 19:28:09
Quote Anchor link
Mijn eerste Class... Geef jullie gedacht hierover
[File: image.inc.php][UPDATE]
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
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
<?php

    /***********************************************************
    * Een Class om een watermerk op een afbeelding te plaatsen *
    ***********************************************************/

    
class img {
    // Construct => Benodigheden om de class te starten
    function __construct($pathtoimage = NULL, $pathtowatermark = NULL, $watermarkalign = 'left', $watermarkvalign = 'top', $watermarktransparent = '100'){

        // Afbeelding
        img::image($pathtoimage);

        // Watermerk
        img::watermark($pathtowatermark);

        // Positie van het watermerk
        img::align($watermarkalign);
        img::valign($watermarkvalign);

        // Doorzichtigheid van het watermerk
        img::transparent($watermarktransparent);

    }


    // Controleer de afbeelding
    function image($pathtoimage = NULL){
        $this->pathtoimage = $pathtoimage;
        img::checkErrors();
    }


    // Controleer het watermerk
    function watermark($pathtowatermark = NULL){
        $this->pathtowatermark = $pathtowatermark;
        img::checkErrors();
    }


    // Posititie van het watermerk (Links => Midden => Rechts => Getal [Links -> Rechts])
    function align($watermarkalign = 'left'){
        $this->align = $watermarkalign;
        img::checkErrors();
    }


    // Posititie van het watermerk (Boven => Midden => Onder => Getal [Boven -> Onder])
    function valign($watermarkvalign = 'top'){
        $this->valign = $watermarkvalign;
        img::checkErrors();
    }


    // Doorzichtigheid van het watermerk
    function transparent($watermarktransparent = '100'){
        $this->transparent = $watermarktransparent;
        img::checkErrors();
    }


    // Controleer op fouten
    private function checkErrors(){
        // Standaard waarden
        $this->error['total_errors'] = '0';
        $this->error['image'] = NULL;
        $this->error['watermark'] = NULL;
        $this->pathtoimage = isset($this->pathtoimage) ? $this->pathtoimage : NULL;
        $this->pathtowatermark = isset($this->pathtowatermark) ? $this->pathtowatermark : NULL;
        $this->valign = isset($this->valign) ? $this->valign : 'top';
        $this->align = isset($this->align) ? $this->align : 'left';
        $this->transparent = isset($this->transparent) ? $this->transparent : '100';

        // Controleer op afbeelding
        if ($this->pathtoimage == NULL){
            $this->error['total_errors'] ++;
            $this->error['image'] = 'No Image!';
        }
else
        // Controleer op bestaande afbeelding
        if (!file_exists($this->pathtoimage)){
            $this->error['total_errors'] ++;
            $this->error['image'] = 'Image Not Found!';
        }
else
        // Controleer of het wel een afbeelding is
        if (!$this->picture = getimagesize($this->pathtoimage)){
            $this->error['total_errors'] ++;
            $this->error['image'] = 'Not An Image!';
        }


        // Controleer op watermerk
        if ($this->pathtowatermark == NULL){
            $this->error['total_errors'] ++;
            $this->error['watermark'] = 'No Watermark!';
        }
else
        // Controleer op bestaande watermerk
        if (!file_exists($this->pathtowatermark)){
            $this->error['total_errors'] ++;
            $this->error['watermark'] = 'Watermark Not Found!';
        }
else
        // Controleer het watermerk is een afbeelding
        if (!$this->watermark = getimagesize($this->pathtowatermark)){
            $this->error['total_errors'] ++;
            $this->error['watermark'] = 'Not A Watermark!';
        }


        // Controleer Transparant
        if ($this->error['total_errors'] == '0'){
            if (!is_numeric($this->transparent)){
                $this->error['total_errors'] ++;
                $this->error['watermark'] = 'Not A Valid Number For transparent! (USE a number BETWEEN 0 - 100)';
            }
else
            if ($this->transparent > '100' || $this->transparent < '0'){
                $this->error['total_errors'] ++;
                $this->error['watermark'] = 'Not A Valid Number For transparent! (USE a number BETWEEN 0 - 100)';
            }
else {
                if ($this->transparent > '0' && $this->transparent <= '100'){
                    $this->transparent = 100 - round($this->transparent);
                }
else {
                    $this->transparent = '100';
                }
            }

        }


        if ($this->error['total_errors'] == '0'){
            // Controleer positie Links => Rechts
            switch($this->align){
                case
'left':
                    $this->align = '0';
                    break;
                case
'center':
                    $this->align = round($this->picture['0'] / 2) - round($this->watermark['0'] / 2);
                    break;
                case
'right':
                    $this->align = round($this->picture['0']) - round($this->watermark['0']);
                    break;
                case
is_numeric($this->align):
                    $this->align = round($this->align);
                    break;
                default:

                    $this->error['total_errors'] ++;
                    $this->error['watermark'] = 'Not A Valid Input For align! (USE `left`, `right`, `center` OR a number)';
            }


            // Controleer positie Boven => Onder
            switch($this->valign){
                case
'top':
                    $this->valign = '0';
                    break;
                case
'center':
                    $this->valign = round($this->picture['1'] / 2) - round($this->watermark['1'] / 2);
                    break;
                case
'bottom':
                    $this->valign = round($this->picture['1']) - round($this->watermark['1']);
                    break;
                case
is_numeric($this->valign):
                    $this->valign = round($this->valign);
                    break;
                default:

                    $this->error['total_errors'] ++;
                    $this->error['watermark'] = 'Not A Valid Input For valign! (USE `top`, `bottom`, `center` OR a number)';
            }
        }
    }


    // Afbeelding maken
    private function createImg($image = NULL, $mime = NULL){
        switch($mime){
            case
'image/gif':
                return imagecreatefromgif($image);
                break;
            case
'image/jpg':
                return imagecreatefromjpeg($image);
                break;
            case
'image/jpeg':
                return imagecreatefromjpeg($image);
                break;
            case
'image/png':
                return imagecreatefrompng($image);
                break;
            default:

                return imagecreatefromjpeg($image);
                break;
        }
    }


    // Afbeelding maken
    private function setImage(){
        $this->imgPicture = img::createImg($this->pathtoimage, $this->picture['mime']);
        img::checkErrors();
    }


    // Watermerk maken
    private function setWatermark(){
        $this->imgWatermark = img::createImg($this->pathtowatermark, $this->watermark['mime']);
        img::checkErrors();
    }


    // Toon de afbeelding
    function show(){
        if ($this->error['total_errors'] == '0'){
            img::setImage();
            img::setWatermark();
            imagecopymerge($this->imgPicture, $this->imgWatermark, $this->align, $this->valign, 0, 0, $this->watermark['0'], $this->watermark['1'], $this->transparent);
            switch($this->picture['mime']){
                case
'image/gif':
                    header('Content-type: image/gif');
                    imagegif($this->imgPicture);
                    break;
                case
'image/png':
                    header('Content-type: image/png');
                    imagepng($this->imgPicture);
                    break;
                default:

                    header('Content-type: image/jpeg');
                    imagejpeg($this->imgPicture);
                    break;
            }

            imagedestroy($this->imgPicture);
            imagedestroy($this->imgWatermark);
        }
else {
            print '<h1>There Are Some Errors Found!</h1>';
            print '<pre>';
            print_r($this->error);
            print '</pre>';
        }

    }

}


?>
[File: show.php]
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
<?php

// Start een sessie
session_start();

// Ophalen van Class
require_once('image.inc.php');

// OPTIE 1
$img = new img('image.jpg', 'watermark.gif', 'center', 'center', '50');

if ($img->error['total'] != '0'){
    print '<pre>';
    print_r($img);
    print '</pre>';
}
else {
    $img->show();
}


// OPTIE 2
$img = new img();
$img->image('image.jpg'); // URL naar de afbeelding
$img->watermark('watermark.gif'); // URL naar het watermerk
$img->align('center'); // Positie van het watermerk (Left, Center, Right of een getal...
$img->valign('center'); // Positie van het watermerk (Top, Center, Bottom of een getal...
$img->transparent('50'); // Doorzichtigheid van het watermerk (0 -> 100);

if ($img->error['total'] != '0'){
    print '<pre>';
    print_r($img);
    print '</pre>';
}
else {
    $img->show();
}


?>


Titel aangepast, zo is het wat duidelijker.[/modedit]
Gewijzigd op 10/01/2012 19:39:24 door G P
 
PHP hulp

PHP hulp

06/05/2024 03:10:53
 
Kris Peeters

Kris Peeters

10/01/2012 15:42:17
Quote Anchor link
Het ziet er wel proper uit.

Straks eens uitproberen.

Ik zie wel nog een mogelijkheid om iets toe te voegen.

Wanneer je zo'n soort dingen doet:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?php
$img
= new img();
$img->image('image.jpg'); // URL naar de afbeelding
$img->watermark('watermark.gif'); // URL naar het watermerk
$img->align('center'); // Positie van het watermerk (Left, Center, Right of een getal...
...
?>


Het is ook mogelijk dat je het zo doet:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?php
$img
= new img();
$img->image('image.jpg') // URL naar de afbeelding
    ->watermark('watermark.gif') // URL naar het watermerk
    ->align('center'); // Positie van het watermerk (Left, Center, Right of een getal...
...
?>


Wat moet je dan doen? Simpelweg al die functies waarbij je gegevens in het object pompt, die eindig je allemaal met
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
  return $this;
}

?>
 
Pim -

Pim -

10/01/2012 15:46:09
Quote Anchor link
Probeer eens met exceptions te werken.
 
G P

G P

10/01/2012 19:46:24
Quote Anchor link
Script is geupdated, volgende kan je gebruiken.
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
<?php

// Start een sessie
session_start();

// Ophalen van Class
require_once('function.inc.php');

// OPTIE 1
$img = new img('image.jpg', 'watermark.gif', 'center', 'center', '50');
$img->show();

// OPTIE 2
$img = new img();
$img->image('lightbulb.jpg'); // URL naar de afbeelding
$img->watermark('watermark.gif'); // URL naar het watermerk
$img->align('right'); // Positie van het watermerk (Left, Center, Right of een getal...
$img->valign('bottom'); // Positie van het watermerk (Top, Center, Bottom of een getal...
$img->transparent('75'); // Doorzichtigheid van het watermerk (0 -> 100);
$img->show();

?>
Natuurlijk werkt de eerste optie (zoals hierboven beschreven) ook nog altijd.

Update Info:
1) Foutmelding tonen als er fouten zijn toon anders de afbeelding
2) Transparent rekent nu in %, 100 = is onzichtbaar, 0 = volledig zichtbaar.
3) Klein foutje bij error[total_errors] is weg gewerkt

Toevoeging op 10/01/2012 19:48:21:

@Kris: Geen return
@Pim: Dat zal de volgende stap zijn... ben aan het leren in kleine stapjes...
 
- Jim  -

- Jim -

10/01/2012 21:06:09
Quote Anchor link
@Pim: Exceptions??? Daar heeft PHP toch DIE() voor??? :p

$img->image(...), het is misschien handig om er setImage() van te maken.
Dat zegt n.l. meer dan alleen image.

"getter & setters, query & command, that kind of things...."
 
G P

G P

11/01/2012 01:37:50
Quote Anchor link
@Jim: Inderdaad, setImage en setWatermark zal duidelijker zijn, handige tip! :)
 
Niels K

Niels K

11/01/2012 11:12:25
Quote Anchor link
Een watermerk een een afbeelding zijn toch twee verschillende zaken? Afgezien van het feit dat ze wel met elkaar te maken hebben.

Daarnaast, ik mis method visibility ?
Gewijzigd op 11/01/2012 11:26:23 door Niels K
 
Kris Peeters

Kris Peeters

11/01/2012 11:26:43
Quote Anchor link
De private methodes staan wel als private.
Alleen lijkt het er op dat enkel public niet expliciet vermeld wordt, wegens toch default
 
Niels K

Niels K

11/01/2012 11:29:41
Quote Anchor link
Ja inderdaad.

Daarnaast zie ik nog het volgende:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
if ($this->error['total_errors'] == '0'){
?>


0 is een integer dus dan moet je dat ook als integer controleren.
Ook zie ik dat hij diversen variabelen gebruikt maar die niet gedefinieerd heeft.

Maar goed dit is nog het belangrijkste:
Quote:
Een watermerk een een afbeelding zijn toch twee verschillende zaken? Afgezien van het feit dat ze wel met elkaar te maken hebben.
Gewijzigd op 11/01/2012 11:29:53 door Niels K
 
Wouter J

Wouter J

11/01/2012 11:35:51
Quote Anchor link
Ook img::image($pathtoimage) of al die andere methods die je aanroept in de class zelf. Het is toch veel beter om $this->image($pathtoimage) te gebruiken?
 
Kris Peeters

Kris Peeters

11/01/2012 12:50:46
Quote Anchor link
Gunther Peeters op 10/01/2012 19:46:24:
...
@Kris: Geen return
...


Ik zal eens tonen wat ik bedoel.
Dit is jouw script, maar een beetje aangepast.

index.php
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
<?php
/*
Dit script verwacht drie files: "watermark.gif", "trein.jpg" en "auto.jpg"
*/

session_start();
require_once('watermark.php');

if (!empty($_GET['w'])) {
  switch($_GET['w']) {
    case
1:
      $img = new img();
      $img->image('trein.jpg')            // URL naar de afbeelding
          ->watermark('watermark.gif')    // URL naar het watermerk
          ->align('right')                // Positie van het watermerk (Left, Center, Right of een getal...
          ->valign('bottom')              // Positie van het watermerk (Top, Center, Bottom of een getal...
          ->transparent('50');            // Doorzichtigheid van het watermerk (0 -> 100);

      if ($img->error['total'] != '0') {
          print '<pre>';
          print_r($img);
          print '</pre>';
      }
else {
          $img->show();
      }

      break;
    case
2:
      $img = new img();
      $img->image('auto.jpg')            // URL naar de afbeelding
          ->watermark('watermark.gif')    // URL naar het watermerk
          ->align('left')               // Positie van het watermerk (Left, Center, Right of een getal...
          ->valign('top')              // Positie van het watermerk (Top, Center, Bottom of een getal...
          ->transparent('50');            // Doorzichtigheid van het watermerk (0 -> 100);

      if ($img->error['total'] != '0') {
          print '<pre>';
          print_r($img);
          print '</pre>';
      }
else {
          $img->show();
      }

      break;
  }
}

else {
  echo '<img src="?w=1"/> <img src="?w=2"/>';
}

?>


watermark.php
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
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
<?php
    /***********************************************************
    * Een Class om een watermerk op een afbeelding te plaatsen *
    ***********************************************************/

class img {
    // Construct => Benodigheden om de class te starten
    function __construct($pathtoimage = NULL, $pathtowatermark = NULL, $watermarkalign = 'left', $watermarkvalign = 'top', $watermarktransparent = '100') {

        // Foutmeldingen
        $this->error['total'] = '0';
        $this->error['image'] = $pathtoimage;
        $this->error['watermark'] = $pathtowatermark;

        // Afbeelding
        if ($pathtoimage != NULL) { img::image($pathtoimage); }

        // Watermerk
        if ($pathtowatermark != NULL) { img::watermark($pathtowatermark); }

        // Positie van het watermerk
        img::align($watermarkalign);
        img::valign($watermarkvalign);

        // Doorzichtigheid van het watermerk
        img::transparent($watermarktransparent);
    }


    // Controleer de afbeelding
    function image($pathtoimage = NULL) {
        $this->error['image'] = $pathtoimage;
        // Controleer op afbeelding
        if ($this->error['image'] == NULL) {
            $this->error['total'] ++;
            $this->error['image'] = 'No Image!';
        }
else
        // Controleer op bestaande afbeelding
        if (!file_exists($this->error['image'])) {
            $this->error['total'] ++;
            $this->error['image'] = 'Image Not Found!';
        }
else
        if (!$this->picture = getimagesize($this->error['image'])) {
            $this->error['total'] ++;
            $this->error['image'] = 'Not An Image!';
        }

      return $this;
    }


    // Controleer het watermerk
    function watermark($pathtowatermark = NULL) {
        $this->error['watermark'] = $pathtowatermark;
        // Controleer op watermerk
        if ($this->error['watermark'] == NULL) {
            $this->error['total'] ++;
            $this->error['watermark'] = 'No Watermark!';
        }
else
        // Controleer op bestaande watermerk
        if (!file_exists($this->error['watermark'])) {
            $this->error['total'] ++;
            $this->error['watermark'] = 'Watermark Not Found!';
        }
else
        // Controleer het watermerk is een afbeelding
        if (!$this->watermark = getimagesize($this->error['watermark'])) {
            $this->error['total'] ++;
            $this->error['watermark'] = 'Not A Watermark!';
        }


      return $this;
    }


    // Posititie van het watermerk (Links => Midden => Rechts => Getal [Links -> Rechts])
    function align($watermarkalign = 'left') {
        if ($this->error['total'] == '0') {
            switch($watermarkalign) {
                case
'left':
                    $this->align = '0';
                    break;
                case
'center':
                    $this->align = round($this->picture['0'] / 2) - round($this->watermark['0'] / 2);
                    break;
                case
'right':
                    $this->align = round($this->picture['0']) - round($this->watermark['0']);
                    break;
                case
is_numeric($watermarkalign):
                    $this->align = round($watermarkalign);
                    break;
                default:

                    $this->error['total'] ++;
                    $this->error['watermark'] = 'Not A Valid Input For align! (USE `left`, `right`, `center` OR a number)';
            }
        }

      return $this;
    }


    // Posititie van het watermerk (Boven => Midden => Onder => Getal [Boven -> Onder])
    function valign($watermarkvalign = 'top') {
        if ($this->error['total'] == '0') {
            switch($watermarkvalign) {
                case
'top':
                    $this->valign = '0';
                    break;
                case
'center':
                    $this->valign = round($this->picture['1'] / 2) - round($this->watermark['1'] / 2);
                    break;
                case
'bottom':
                    $this->valign = round($this->picture['1']) - round($this->watermark['1']);
                    break;
                case
is_numeric($watermarkvalign):
                    $this->valign = round($watermarkvalign);
                    break;
                default:

                    $this->error['total'] ++;
                    $this->error['watermark'] = 'Not A Valid Input For valign! (USE `top`, `bottom`, `center` OR a number)';
            }
        }

      return $this;
    }


    // Doorzichtigheid van het watermerk
    function transparent($watermarktransparent = '100') {
        if (!is_numeric($watermarktransparent)) {
            $this->error['total'] ++;
            $this->error['watermark'] = 'Not A Valid Number For transparent! (USE a number BETWEEN 0 - 100)';
        }
else
        if ($watermarktransparent > '100' || $watermarktransparent < '0') {
            $this->error['total'] ++;
            $this->error['watermark'] = 'Not A Valid Number For transparent! (USE a number BETWEEN 0 - 100)';
        }
else {
            $this->transparent = round($watermarktransparent);
        }

      return $this;
    }


    // Afbeelding maken
    private function createImg($image = NULL, $mime = NULL) {
        switch($mime) {
            case
'image/gif':
                return imagecreatefromgif($image);
                break;
            case
'image/jpg':
                return imagecreatefromjpeg($image);
                break;
            case
'image/jpeg':
                return imagecreatefromjpeg($image);
                break;
            case
'image/png':
                return imagecreatefrompng($image);
                break;
            default:

                return imagecreatefromjpeg($image);
                break;
        }
    }


    // Afbeelding maken
    private function setImage() {
        $this->imgPicture = img::createImg($this->error['image'], $this->picture['mime']);
    }


    // Watermerk maken
    private function setWatermark() {
        $this->imgWatermark = img::createImg($this->error['watermark'], $this->watermark['mime']);
    }


    // Toon de afbeelding
    function show() {
        img::setImage();
        img::setWatermark();
        imagecopymerge($this->imgPicture, $this->imgWatermark, $this->align, $this->valign, 0, 0, $this->watermark['0'], $this->watermark['1'], $this->transparent);
        switch($this->picture['mime']) {
            case
'image/gif':
                header('Content-type: image/gif');
                imagegif($this->imgPicture);
                break;
            case
'image/png':
                header('Content-type: image/png');
                imagepng($this->imgPicture);
                break;
            default:

                header('Content-type: image/jpeg');
                imagejpeg($this->imgPicture);
                break;
        }

        imagedestroy($this->imgPicture);
        imagedestroy($this->imgWatermark);
    }
}

?>
Gewijzigd op 11/01/2012 12:51:49 door Kris Peeters
 
Jelle -

Jelle -

11/01/2012 13:42:45
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php

img::image($pathtoimage);

?>


Dit zijn static aanroepen en niet object aanroepen. Geen idee waarom je dat doet je functies zijn ook niet static. Do you know?
 
Kris Peeters

Kris Peeters

11/01/2012 14:27:55
Quote Anchor link
Wel ja, daar kan nog aan gewerkt worden. De static functies als static bestempelen, en ze zo ook gebruiken.

Als de functie niet static is, spreek je ze aan met $this->functienaam(), als ze static zijn met self::functienaam()
 
G P

G P

12/01/2012 11:52:32
Quote Anchor link
Hartelijk bedankt iedereen voor al deze mooie commentaren, ik zal hierbij ZEKER rekening houden. Zodra dit script een update krijgt zal ik deze ook meteen plaatsen.
 
G P

G P

08/09/2012 12:26:00
Quote Anchor link
NIEUWE UPDATE:

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
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
<?php

class newImage {
    // STAAT HIER MAAR OM ZAKEN TOE TE VOEGEN ALS HET NODIG IS BIJ EEN UPDATE
    public function __construct(){
    }


    /**************************************************\
        URL NAAR AFBEELDING
    \**************************************************/

    public function set_image($path_to_image = false, $opacity = 0, $rotate = 0){
        if ($path_to_image && file_exists($path_to_image)){
            $this->path_to_image = $path_to_image;
        }

        if ($rotate < 0){
            $rotate = 0;
        }
elseif ($rotate > 360){
            $rotate = 360;
        }
else {
            $rotate = floor($rotate);
        }

        $this->imageRotate = $rotate;
        $this->checkImage();
    }


    /**************************************************\
        URL NAAR WATERMERK
    \**************************************************/

    public function set_watermark($path_to_watermark = false, $horizontal_position = 'center', $vertical_position = 'center', $opacity = 0, $rotate = 0){
        if ($path_to_watermark && file_exists($path_to_watermark)){
            $this->path_to_watermark = $path_to_watermark;
            if ($rotate < 0){
                $rotate = 0;
            }
elseif ($rotate > 360){
                $rotate = 360;
            }
else {
                $rotate = floor($rotate);
            }

            $this->watermarkHorizontalPosition = $horizontal_position;
            $this->watermarkVerticalPosition = $vertical_position;
            $this->watermarkRotate = $rotate;
            $this->checkWatermark();
        }
    }


    /**************************************************\
        TEKST GEGEVENS
    \**************************************************/

    public function set_text($text_string = NULL, $text_color = '900', $background_color = 'FFF', $font_size = 0){
        // CONTROLEER AFBEELDING
        $this->showImage = isset($this->showImage) ? $this->showImage : NULL;
        if (!$this->showImage){ $this->checkImage(); }
        // CONTROLEER TEKST
        if (!$text_string && strlen($text_string) < 1){
            $this->text = 'Damn... You\'ve forgotten the text !';
        }
else {
            $this->text = $text_string;
        }

        // CONTROLEER TEKSTKLEUR
        if ($text_color && strlen($text_color) >= 3 && strlen($text_color) <= 7){
            $text_color = '#'.str_replace('#', '', $text_color);
        }
else {
            $text_color = '#FFF';
        }

        $this->text_color = $this->hex2RGB($text_color);
        // CONTROLEER ACHTERGROND KLEUR
        if ($background_color && strlen($background_color) >= 3 && strlen($background_color) <= 7){
            $background_color = '#'.str_replace('#', '', $background_color);
        }
else {
            $background_color = '#000';
        }

        $this->background_color = $this->hex2RGB($background_color);
        // CONTROLEER TEKST GROOTTE
        $this->font_size =    round($font_size) > 62    ? 62    :
                            round($font_size) < 12    ? 12    :
                            round($font_size);
        $this->checkText();
    }


    /**************************************************\
        KLEUR VERANDEREN
    \**************************************************/

    public function swap_colors($old_color = 'FFF', $new_color = '000'){
        // CONTROLEER AFBEELDING
        $this->showImage = isset($this->showImage) ? $this->showImage : NULL;
        if (!$this->showImage){ $this->checkImage(); }
        // CONTROLEER OUDE KLEUR
        if ($old_color && strlen($old_color) >= 3 && strlen($old_color) <= 7){
            $old_color = '#'.str_replace('#', '', $old_color);
        }
else {
            $old_color = '#FFF';
        }

        $old_rgb = $this->hex2RGB($old_color);
        // CONTROLEER NIEUWE KLEUR
        if ($new_color && strlen($new_color) >= 3 && strlen($new_color) <= 7){
            $new_color = '#'.str_replace('#', '', $new_color);
        }
else {
            $new_color = '#FFF';
        }

        $new_rgb = $this->hex2RGB($new_color);
        // KLEUR WISSELEN
        imagetruecolortopalette($this->showImage, true, 216);
        $switchColor = imagecolorclosest($this->showImage, $old_rgb['red'], $old_rgb['green'], $old_rgb['blue']);
        imagecolorset($this->showImage, $switchColor, $new_rgb['red'], $new_rgb['green'], $new_rgb['blue']);
    }


    /**************************************************\
        AFBEELDING CONTROLEREN
    \**************************************************/

    private function checkImage(){
        // CONTROLEER PAD NAAR DE AFBEELDING
        $this->path_to_image = isset($this->path_to_image) ? $this->path_to_image : false;
        if ($this->path_to_image){
            // OPHALEN VAN AFBEELDING GEGEVENS
            $infoImage = getimagesize($this->path_to_image);
            // JPG / JPEG
            if ($infoImage['mime'] == 'image/jpeg'){
                $image = @imagecreatefromjpeg($this->path_to_image);
            }
else
            // PNG
            if ($infoImage['mime'] == 'image/png'){
                $image = @imagecreatefrompng($this->path_to_image);
            }
else
            // GIF
            if ($infoImage['mime'] == 'image/gif'){
                $image = @imagecreatefromgif($this->path_to_image);
            }
else
            // GEEN AFBEELDING GEVONDEN MAAK ZELF
            {
                $image = @imagecreate(500, 500);
                imagecolorallocatealpha($image, 0, 0, 0, 0);
                $infoImage['0'] = 500;
                $infoImage['1'] = 500;
            }
        }
else {
            $image = @imagecreate(500, 500);
            imagecolorallocatealpha($image, 0, 0, 0, 0);
            $infoImage['0'] = 500;
            $infoImage['1'] = 500;
        }

        // AFBEELDING DRAAIEN
        $image = imagerotate($image, $this->imageRotate, imagecolorallocatealpha($image, 0, 0, 0, 127));
        imagealphablending($image, false);
        imagesavealpha($image, true);
        // DOORSTUREN VAN BENODIGDE GEGEVENS
        $this->showImage = $image;
        $this->image_width = imagesx($image);
        $this->image_height = imagesy($image);
    }


    /**************************************************\
        WATERMERK CONTROLEREN
    \**************************************************/

    private function checkWatermark(){
        // CONTROLEER AFBEELDING
        $this->showImage = isset($this->showImage) ? $this->showImage : NULL;
        if (!$this->showImage){ $this->checkImage(); }
        // CONTROLEER PAD NAAR HET WATERMERK
        $this->path_to_watermark = isset($this->path_to_watermark) ? $this->path_to_watermark : false;
        if ($this->path_to_watermark){
            // INFORMATIE VAN HET WATERMERK
            $infoWatermark = getimagesize($this->path_to_watermark);
            // JPG / JPEG
            if ($infoWatermark['mime'] == 'image/jpeg'){
                $watermark = @imagecreatefromjpeg($this->path_to_watermark);
            }
else
            // PNG
            if ($infoWatermark['mime'] == 'image/png'){
                $watermark = @imagecreatefrompng($this->path_to_watermark);
            }
else
            // GIF
            if ($infoWatermark['mime'] == 'image/gif'){
                $watermark = @imagecreatefromgif($this->path_to_watermark);
            }

            $bg = imagecolorallocatealpha($watermark, 0, 0, 0, 127);
            imagefill($watermark, 0, 0 , $bg);
            // AFBEELDING DRAAIEN
            $watermark = imagerotate($watermark, $this->watermarkRotate, $bg);
            imagealphablending($watermark, false);
            imagesavealpha($watermark, true);
            // BEREKENING OM HET WATERMERK IN HET MIDDEN VAN DE AFBEELDING TE PLAATSEN
            $width = imagesx($watermark);
            $height = imagesy($watermark);
            // WATERMERK HORIZONTAAL POSITIONEREN
            if ($this->watermarkHorizontalPosition == 'center'){
                $center_x = ($this->image_width - $width) / 2;
            }
elseif ($this->watermarkHorizontalPosition == 'left'){
                $center_x = 0;
            }
elseif ($this->watermarkHorizontalPosition == 'right'){
                $center_x = $this->image_width - $width;
            }
else {
                $center_x = round($this->watermarkHorizontalPosition);
                if (($center_x + $width) > $this->image_width){
                    $center_x = $this->image_width - $width;
                }
elseif ($this->watermarkHorizontalPosition < 0){
                    $center_x = ($this->image_width - $width) + $this->watermarkHorizontalPosition;
                    if ($center_x < 0){ $center_x = 0; }
                }
            }

            // WATERMERK VERTIKAAL POSITIONEREN
            if ($this->watermarkVerticalPosition == 'center'){
                $center_y = ($this->image_height - $height) / 2;
            }
elseif ($this->watermarkVerticalPosition == 'top'){
                $center_y = 0;
            }
elseif ($this->watermarkVerticalPosition == 'bottom'){
                $center_y = $this->image_height - $height;
            }
else {
                $center_y = round($this->watermarkVerticalPosition);
                if (($center_y + $width) > $this->image_height){
                    $center_y = $this->image_height - $width;
                }
elseif ($this->watermarkVerticalPosition < 0){
                    $center_y = ($this->image_height - $width) + $this->watermarkVerticalPosition;
                    if ($center_y < 0){ $center_y = 0; }
                }
            }

            imagecopy($this->showImage, $watermark, $center_x, $center_y, 0, 0, $width, $height);
        }
    }


    /**************************************************\
        TEKST CONTROLEREN
    \**************************************************/

    private function checkText(){
        // CONTROLEER AFBEELDING
        $this->showImage = isset($this->showImage) ? $this->showImage : NULL;
        if (!$this->showImage){ $this->checkImage(); }
        // CONTROLEER TEKST
        $this->text = isset($this->text) ? $this->text : false;
        if ($this->text){
            // MAAK ACHTERGROND
            $box_width = $this->image_width;
            $box_height = $this->font_size * 2;
            $box = imagecreatetruecolor($box_width, $box_height);
            $boxcolor = imagecolorallocatealpha($box, $this->background_color['red'], $this->background_color['green'], $this->background_color['blue'], 0);
            imagefilledrectangle($box, 0, 0, $box_width, $box_height, $boxcolor);

            // MAAK TEKST
            $x_box = ($box_width / 2) - ((strlen($this->text) * $this->font_size) / 2.75);
            $y_box = ($this->font_size * 1.5);
            $textColor = imagecolorallocatealpha($box, $this->text_color['red'], $this->text_color['green'], $this->text_color['blue'], 0);
            $font = 'BKANT.TTF'; // WIJZIG DE NAAM NAAR JOUW FONT-TYPE
            imagefttext($box, $this->font_size, 0, $x_box, $y_box, $textColor, $font, $this->text);

            // TEKST IN HET MIDDEN PLAATSEN
            $center = ($this->image_height / 2) - ($box_height / 2);
            imagecopy($this->showImage, $box, 0, $center, 0, 0, $box_width, $box_height);
        }
    }


    /**************************************************\
        OMZETTEN KLEUR VAN HEX NAAR DEC
    \**************************************************/

    private function hex2RGB($hexStr) {
        // VERWIJDER ONNODIGE TEKENS
        $hexStr = preg_replace("/[^0-9A-Fa-f]/", '', $hexStr);
        $rgbArray = array();
        // OMZETTEN VAN 6 TEKENS NAAR RGB
        if (strlen($hexStr) == 6) {
            $colorVal = hexdec($hexStr);
            $rgbArray['red'] = 0xFF & ($colorVal >> 0x10);
            $rgbArray['green'] = 0xFF & ($colorVal >> 0x8);
            $rgbArray['blue'] = 0xFF & $colorVal;
        }
else
        // OMZETTEN VAN 3 TEKENS NAAR RGB
        if (strlen($hexStr) == 3) {
            $rgbArray['red'] = hexdec(str_repeat(substr($hexStr, 0, 1), 2));
            $rgbArray['green'] = hexdec(str_repeat(substr($hexStr, 1, 1), 2));
            $rgbArray['blue'] = hexdec(str_repeat(substr($hexStr, 2, 1), 2));
        }
else
        // ONGELDIG KLEURWAARDE
        {
            return false;
        }

        // TERUG STUREN VAN RGB
        return $rgbArray;
    }


    /**************************************************\
        TOON DE AFBEELDING
    \**************************************************/

    public function show_image(){
        // CONTROLEER AFBEELDING
        $this->showImage = isset($this->showImage) ? $this->showImage : NULL;
        if (!$this->showImage){ $this->checkImage(); }
        // AFBEELDING TONEN
        header('Content-Type: image/png');
        imagepng($this->showImage);
        imagedestroy($this->showImage);
    }


    /**************************************************\
        BEWAAR DE AFBEELDING
    \**************************************************/

    public function save_image($new_name = NULL, $save_to_folder = NULL, $show_image = false){
        // CONTROLEER AFBEELDING
        $this->showImage = isset($this->showImage) ? $this->showImage : NULL;
        if (!$this->showImage){ $this->checkImage(); }
        // CONTROLEER NAAM
        if (!$new_name || strlen($new_name) < '1' || strlen($new_name) > '255'){
            $new_name = time();
        }

        // CONTROLEER MAP
        if (!$save_to_folder || strlen($save_to_folder) < 1){ $save_to_folder = '.'; }
        $i = 0;
        $checkName = $new_name;
        // GEEF EEN NIEUWE NAAM ALS DE AFBEELDING AL BESTAAT
        while (file_exists($save_to_folder.'/'.$new_name.'.png')){
            $i++;
            $new_name = $checkName.'_'.$i;
        }

        // AFBEELDING TONEN ?
        if ($show_image === true){
            header('Content-Type: image/png');
            imagepng($this->showImage);
        }

        // BEWAREN
        imagepng($this->showImage, $save_to_folder.'/'.$new_name.'.png');
        imagedestroy($this->showImage);
    }

}

}


?>
Hoe aanroepen?
$img = new newImage;

// AFBEELDING TOEVOEGEN
$img->set_image('URL_NAAR_AFBEELDING.PNG/GIF/JPG', 0, KANTELEN);
KANTELEN: 0° tot 360°

// WATERMERK TOEVOEGEN
$img->set_watermark('URL_NAAR_WATERMERK.PNG/GIF/JPG', X, Y, 0, KANTELEN);
X: left, right, center, GETAL
GETAL: Het getal kan een positief of een negatief getal zijn.
Een positief getal wordt berekent van links naar rechts, negatief wordt berekent van rechts naar links.
Y: top, bottom, center, GETAL
GETAL: Het getal kan een positief of een negatief getal zijn.
Een positief getal wordt berekent van boven naar beneden, negatief wordt berekent van beneden naar boven.
KANTELEN: Idem als bij afbeelding

*** NIEUW ***
// TEKST TOEVOEGEN
$img->set_text('MIJN TEKST', 'TEKSTKLEUR', 'ACHTERGRONDKLEUR', 'TEKSTGROOTTE');

*** NIEUW ***
// KLEUR WISSELEN VAN DE AFBEELDING
$img->swap_color('OUDE_KLEUR', 'NIEUWE_KLEUR');

// TOON DE AFBEELDING
$img->show_image();

*** NIEUW ***
// AFBEELDING BEWAREN EN TONEN
$img->save_image('NAAM', 'MAP', true/false);

*** TOEKOMST GERICHT ***
- Afbeeldingen en tekst draaien
- Afbeeldingen en tekst transparant maken
- Horizontaal en verticaal positioneren van afbeeldingen en tekst

Wederom zijn jullie ideeën en gedachten welkom !!!
Gewijzigd op 09/09/2012 16:47:29 door G P
 
- Raoul -

- Raoul -

09/09/2012 14:29:47
Quote Anchor link
img of newImage zijn allebei geen correcte namen voor een class

Toevoeging op 09/09/2012 14:30:12:

Ikzelf zou een class Watermerk en een class Image maken.
 
G P

G P

09/09/2012 16:11:45
Quote Anchor link
Update !

- Het draaien van afbeelding en van watermerk
- Het horizontaal en verticaal positioneren van het watermerk

- Raoul - op 09/09/2012 14:29:47:
img of newImage zijn allebei geen correcte namen voor een class
Ik weet het, heb er al zelf een paar keren problemen mee gehad, 2x new achter elkaar is verwarrend. Een suggestie is dus welkom :)
- Raoul - op 09/09/2012 14:29:47:
Ikzelf zou een class Watermerk en een class Image maken.
Ik denk dat het ieder zijn goesting* is.

Goesting* : Zin
 
Ger van Steenderen
Tutorial mod

Ger van Steenderen

09/09/2012 16:46:48
Quote Anchor link
Alleeh hé, goesting of nie, ik vin ut krek un goe idee ;-)
 
G P

G P

09/09/2012 17:01:42
Quote Anchor link
Offtopic:
ut? krek? un? Nederlands dat versta ik nog, belgisch lukt ook wel maar mijn chinees is niet zo goed meer als vroeger...
Ut, is waarschijnlijk het en Un is dan wel een maar met krek heb ik geen flauw idee
 
Ger van Steenderen
Tutorial mod

Ger van Steenderen

09/09/2012 17:35:20
Quote Anchor link
Offtopic:

Lol GP, krek is voor jou wat goesting is voor het grootste gedeelte van de Hollanders.
Ter info:
Krek is plat WZN-brabants en kan afhankelijk van de cotext waarin het gebruikt wordt verataald worden als 'echt wel', 'mijn kop eraf', etc.
Gewijzigd op 09/09/2012 17:43:46 door Ger van Steenderen
 
- Raoul -

- Raoul -

09/09/2012 17:39:06
Quote Anchor link
G P op 09/09/2012 16:11:45:
- Raoul - op 09/09/2012 14:29:47:
img of newImage zijn allebei geen correcte namen voor een class
Ik weet het, heb er al zelf een paar keren problemen mee gehad, 2x new achter elkaar is verwarrend. Een suggestie is dus welkom :)
- Raoul - op 09/09/2012 14:29:47:
Ikzelf zou een class Watermerk en een class Image maken.
Ik denk dat het ieder zijn goesting* is.


Daar ben ik het niet mee eens. Ieder zijn zin of niet, de manier waarop je OOP doet moet gewoon correct zijn.
Iedere klasse moet 1 bepaalde taak hebben, niet een image renderen en er een watermerk op tonen, dat zijn al 2 taken.

In OOP moet je ook denken in objecten, "newImage" is geen object. "Image" bijvoorbeeld wel.
In real life heb je toch ook geen object "nieuwe fiets", het woord "nieuwe" is een bijvoegelijk naamwoord dat hoort bij fiets. Het object is dus fiets.

Ik raad je dit eens aan om door te lezen: correcte klasse naamgeving
Gewijzigd op 09/09/2012 17:39:43 door - Raoul -
 

Pagina: 1 2 volgende »



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.