Afbeelding bijsnijden en uploaden naar de server script
Ik gebruik al langere tijd een script om mijn afbeeldingen via een formulier naar de server te plaatsen. Hierbij zit een mogelijkheid om hem een vaste breedte te geven en daarbij rekent hij ook de nieuwe hoogte uit.
Nou wil ik op mijn website enkel met een vierkante afbeelding gaan werken van 450x450px.
Ik zou het hierbij dus een super mogelijkheid vinden als het script elke afbeelding zou kunnen bijsnijden ipv te verkleinen. Denkend vanuit het midden...
Ik heb hier echt geen kaas van gegeten en zou echt niet weten hoe ik het script zou moeten aanpassen om dit te realiseren. Of misschien is er een beter script dan wat ik nu heb.
Wie wil en kan mij hierbij helpen?
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
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
$streepje = "-";
$extentie = ".jpg";
$cijfer1 = mt_rand(1, 9);
$newfilename = $Datum . $streepje . $cijfer1 . $extentie;
$change="";
$abc="";
define ("MAX_SIZE","450");
function getExtension($str) {
$i = strrpos($str,".");
if (!$i) { return ""; }
$l = strlen($str) - $i;
$ext = substr($str,$i+1,$l);
return $ext;
}
$errors=0;
if($_SERVER["REQUEST_METHOD"] == "POST")
{
$image = $_FILES['bestand']['name'];
$uploadedfile = $_FILES['bestand']['tmp_name'];
if ($image)
{
$filename = stripslashes($_FILES['bestand']['name']);
$extension = getExtension($filename);
$extension = strtolower($extension);
if (($extension != "jpg") && ($extension != "jpeg"))
{
$change='<div class="msgdiv">Gebruik ENKEL *.jpg of *.jpeg bestanden!</div> ';
$errors=1;
}
else
{
$uploadedfile = $_FILES['bestand']['tmp_name'];
$src = imagecreatefromjpeg($uploadedfile);
list($width,$height)=getimagesize($uploadedfile);
$newwidth=450;
$newheight=($height/$width)*$newwidth;
$tmp=imagecreatetruecolor($newwidth,$newheight);
imagecopyresampled($tmp,$src,0,0,0,0,$newwidth,$newheight,$width,$height);
$filename = $_SERVER['DOCUMENT_ROOT'] . "/$seizoen/img_artiesten/". $_FILES['bestand']['name'];
imagejpeg($tmp,$filename,100);
imagedestroy($tmp);
imagedestroy($src);
}}
}
rename("$filename", $_SERVER['DOCUMENT_ROOT'] . "/$seizoen/img_artiesten/$newfilename");
$extentie = ".jpg";
$cijfer1 = mt_rand(1, 9);
$newfilename = $Datum . $streepje . $cijfer1 . $extentie;
$change="";
$abc="";
define ("MAX_SIZE","450");
function getExtension($str) {
$i = strrpos($str,".");
if (!$i) { return ""; }
$l = strlen($str) - $i;
$ext = substr($str,$i+1,$l);
return $ext;
}
$errors=0;
if($_SERVER["REQUEST_METHOD"] == "POST")
{
$image = $_FILES['bestand']['name'];
$uploadedfile = $_FILES['bestand']['tmp_name'];
if ($image)
{
$filename = stripslashes($_FILES['bestand']['name']);
$extension = getExtension($filename);
$extension = strtolower($extension);
if (($extension != "jpg") && ($extension != "jpeg"))
{
$change='<div class="msgdiv">Gebruik ENKEL *.jpg of *.jpeg bestanden!</div> ';
$errors=1;
}
else
{
$uploadedfile = $_FILES['bestand']['tmp_name'];
$src = imagecreatefromjpeg($uploadedfile);
list($width,$height)=getimagesize($uploadedfile);
$newwidth=450;
$newheight=($height/$width)*$newwidth;
$tmp=imagecreatetruecolor($newwidth,$newheight);
imagecopyresampled($tmp,$src,0,0,0,0,$newwidth,$newheight,$width,$height);
$filename = $_SERVER['DOCUMENT_ROOT'] . "/$seizoen/img_artiesten/". $_FILES['bestand']['name'];
imagejpeg($tmp,$filename,100);
imagedestroy($tmp);
imagedestroy($src);
}}
}
rename("$filename", $_SERVER['DOCUMENT_ROOT'] . "/$seizoen/img_artiesten/$newfilename");
Ikzelf ben fan van de UploadClass van Verot.net. Daar kan je ook erg eenvoudig zoeken bewerkingen mee uitvoeren op afbeeldingen.
https://stackoverflow.com/questions/22740929/php-how-do-i-convert-a-rectangle-image-to-a-square-image
Gewijzigd op 24/03/2022 11:13:00 door Jan te Pas