Snijd afbeelding bij tot vierkant

Overzicht

Sponsored by: Vacatures door Monsterboard

Pagina: « vorige 1 2

Jeroen van Rensen

Jeroen van Rensen

08/04/2020 18:17:19
Anchor link
Hier is mijn functie, er is eigenlijk niet veel veranderd.

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
<?php

function cacheImage($srcFile, $targetDir, $width, $height) {
    $src = imagecreatefromjpeg($srcFile);
    imagepalettetotruecolor($src);

    $dest = imagecreatetruecolor($width, $height);

    $white = imagecolorallocate($src, 255, 255, 255);
    imagefill($dest, 0, 0, $white);

    $r = imagesx($src) / imagesy($src);

    if(imagesx($src) > imagesy($src)) {
        $w = $width;
        $h = $height / $r;
        imagecopyresampled($dest, $src, 0, ($height-$h)/2, 0, 0, $w, $h, imagesx($src), imagesy($src));
    }
else {
        $w = $width * $r;
        $h = $height;
        imagecopyresampled($dest, $src, ($width-$w)/2, 0, 0, 0, $w, $h, imagesx($src), imagesy($src));
    }

    @
mkdir($targetDir, 0777, true);

    imagejpeg($dest, $targetDir . '/' . $srcFile);

    imagedestroy($dest);
    imagedestroy($src);
}


cacheImage('chiffon.jpg', 'nieuw', 800, 800);

?>
 
PHP hulp

PHP hulp

22/12/2024 15:11:55
 
Adoptive Solution

Adoptive Solution

08/04/2020 18:20:26
Anchor link
Er is nik mis met de eerdere code.

Een op een overgenomen en het werkt.
 
Jeroen van Rensen

Jeroen van Rensen

08/04/2020 18:28:14
Anchor link
Nog één vraagje: kent iemand een manier om een hele map met foto's door deze functie te halen?

Toevoeging op 08/04/2020 18:28:54:

Ja Adoptive Solution, dat klopt. Ik heb een foutje gemaakt waardoor hij niet werkte. Zo gaat dat wel vaker met programmeren ;-)
 
- Ariën  -
Beheerder

- Ariën -

08/04/2020 18:30:24
Anchor link
Al gekeken naar scandir()?
Sluit wel directories en de rootmappen '.' en '..' uit.

Als je dit in de commandline kan draaien zou het helemaal mooi zijn.
Gewijzigd op 08/04/2020 18:31:09 door - Ariën -
 
Jeroen van Rensen

Jeroen van Rensen

08/04/2020 18:33:52
Anchor link
En hoe maak ik hier een functie van?

Zoiets?

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<?php

$afbeeldingen
= scandir('oud/');

foreach($afbeeldingen AS $afbeelding) {
    cacheImage($afbeelding, 'nieuw', 800, 800);
}


?>


Toevoeging op 08/04/2020 18:36:32:

Waarschijnlijk is dit een betere manier bedenk ik me net:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<?php

$afbeeldingen
= scandir('oud/');

for($x = 0; $x < count($afbeeldingen); $x++) {
    cacheImage($afbeeldingen[$x], 'nieuw', 800, 800);
}


?>
Gewijzigd op 08/04/2020 18:34:12 door Jeroen van Rensen
 
- Ariën  -
Beheerder

- Ariën -

08/04/2020 18:36:51
Anchor link
Je kan de directory bijvoorbeeld als argument meegeven.

Waarom zie jij een for() beter dan een foreach?

Zie ook: https://www.w3schools.com/php/php_functions.asp
Gewijzigd op 08/04/2020 18:37:51 door - Ariën -
 
Jeroen van Rensen

Jeroen van Rensen

08/04/2020 18:42:32
Anchor link
Ik heb geleerd mysqli_query-resultaten in foreach-loops te tonen, en normale array's in for-loops.
 
- Ariën  -
Beheerder

- Ariën -

08/04/2020 18:46:18
Anchor link
Uit welke cursus? Ik vermoed dat die nog over PHP 3 spreken? Wat dit klinkt niet echt gewoon.
 
Jeroen van Rensen

Jeroen van Rensen

08/04/2020 18:55:12
Anchor link
Het is niet echt een cursus die ik gevolgd heb, maar zo heb ik het mezelf aangeleerd. Hoe zou jij het dan doen?
 
- Ariën  -
Beheerder

- Ariën -

08/04/2020 18:59:24
Anchor link
While() { } voor voornamelijk queries
foreach() { } voor array's.
 

Pagina: « vorige 1 2

 

Dit topic is gesloten.



Overzicht

 
 

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.