Rescaled Pictures
We proberen het al een tijdje. Maar krijgen het niet voor elkaar om een script te schrijven voor platjes gerescaled tussen een aantal waardes. Wie weet toevallig waar ik zo'n script kan vinden?
Ik heb er nog wel ergens een, moment.
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
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
<?php
$img = 'plaatje.jpg';
$dimensions = getimagesize ($img);
$width = $dimensions[0];
$height = $dimensions[1];
$small_width = 64;
$medium_width = 128;
$large_width = 512; // het maximum ligt richting 800
$ratio_small = $small_width / $width;
$ratio_medium = $medium_width / $width;
$ratio_large = $large_width / $width;
$small_height = intval ($ratio_small * $height);
$medium_height = intval ($ratio_medium * $height);
$large_height = intval ($ratio_large * $height);
// small
$src = imagecreatefromjpeg ($img);
$dst_small = imagecreatetruecolor ($small_width, $small_height);
imagecopyresampled ($dst_small, $src, 0, 0, 0, 0, $small_width, $small_height, $width, $height);
$name_small = str_replace ('.jpg', '_small.jpg', $img);
imagejpeg ($dst_small, $name_small, 85);
imagedestroy ($dst_small);
$name_small = basename ($name_small);
echo "<p>small: $small_width x $small_height<br><img src=\"pics/$name_small\"></p>";
// medium
$dst_medium = imagecreatetruecolor ($medium_width, $medium_height);
imagecopyresampled ($dst_medium, $src, 0, 0, 0, 0, $medium_width, $medium_height, $width, $height);
$name_medium = str_replace ('.jpg', '_medium.jpg', $img);
imagejpeg ($dst_medium, $name_medium, 85);
imagedestroy ($dst_medium);
$name_medium = basename ($name_medium);
echo "<p>medium: $medium_width x $medium_height<br><img src=\"pics/$name_medium\"></p>";
// large
$dst_large = imagecreatetruecolor ($large_width, $large_height);
imagecopyresampled ($dst_large, $src, 0, 0, 0, 0, $large_width, $large_height, $width, $height);
$name_large = str_replace ('.jpg', '_large.jpg', $img);
imagejpeg ($dst_large, $name_large, 85);
imagedestroy ($dst_large);
$name_large = basename ($name_large);
echo "<p>large: $large_width x $large_height<br><img src=\"pics/$name_large\"></p>";
imagedestroy ($src);
?>
$img = 'plaatje.jpg';
$dimensions = getimagesize ($img);
$width = $dimensions[0];
$height = $dimensions[1];
$small_width = 64;
$medium_width = 128;
$large_width = 512; // het maximum ligt richting 800
$ratio_small = $small_width / $width;
$ratio_medium = $medium_width / $width;
$ratio_large = $large_width / $width;
$small_height = intval ($ratio_small * $height);
$medium_height = intval ($ratio_medium * $height);
$large_height = intval ($ratio_large * $height);
// small
$src = imagecreatefromjpeg ($img);
$dst_small = imagecreatetruecolor ($small_width, $small_height);
imagecopyresampled ($dst_small, $src, 0, 0, 0, 0, $small_width, $small_height, $width, $height);
$name_small = str_replace ('.jpg', '_small.jpg', $img);
imagejpeg ($dst_small, $name_small, 85);
imagedestroy ($dst_small);
$name_small = basename ($name_small);
echo "<p>small: $small_width x $small_height<br><img src=\"pics/$name_small\"></p>";
// medium
$dst_medium = imagecreatetruecolor ($medium_width, $medium_height);
imagecopyresampled ($dst_medium, $src, 0, 0, 0, 0, $medium_width, $medium_height, $width, $height);
$name_medium = str_replace ('.jpg', '_medium.jpg', $img);
imagejpeg ($dst_medium, $name_medium, 85);
imagedestroy ($dst_medium);
$name_medium = basename ($name_medium);
echo "<p>medium: $medium_width x $medium_height<br><img src=\"pics/$name_medium\"></p>";
// large
$dst_large = imagecreatetruecolor ($large_width, $large_height);
imagecopyresampled ($dst_large, $src, 0, 0, 0, 0, $large_width, $large_height, $width, $height);
$name_large = str_replace ('.jpg', '_large.jpg', $img);
imagejpeg ($dst_large, $name_large, 85);
imagedestroy ($dst_large);
$name_large = basename ($name_large);
echo "<p>large: $large_width x $large_height<br><img src=\"pics/$name_large\"></p>";
imagedestroy ($src);
?>
Dank je
@Jan: Blijven de hoogte-breedte verhoudingen gelijk?
@Sebastiaan: dat is inderdaad het uitgangspunt en blijkt ook te werken in de sites waar ik dit script gebruik.
Lol. hoe lang werken jullie eigenlijk met PHP?
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
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
<?
$map = "./plaatjes/";
$thumb_map = $map."thumbs/";
$max_grootte = 160;
function thumbnail($naam, $map, $max_grootte)
{
$ext = strtolower(end(explode(".", $naam)));
if(@imagecreatefromgif($naam))
{
$afbeelding = imagecreatefromgif($naam);
$ext_r = "gif";
}
elseif(@imagecreatefromjpeg($naam))
{
$afbeelding = imagecreatefromjpeg($naam);
$ext_r = "jpg";
}
elseif(@imagecreatefrompng($naam))
{
$afbeelding = imagecreatefrompng($naam);
$ext_r = "png";
}
elseif(@imagecreatefromwbmp($naam))
{
$afbeelding = imagecreatefromwbmp($naam);
$ext_r = "bmp";
}
else
{
return "Ongeldige Extentie";
}
$ext = ($ext == "") ? $ext_r : "";
$breedte = imagesx($afbeelding);
$hoogte = imagesy($afbeelding);
if($breedte >= $hoogte)
{
$factor = $max_grootte / $breedte;
$breedte_nieuw = $max_grootte;
$hoogte_nieuw = $hoogte * $factor;
}
else
{
$factor = $max_grootte / $hoogte;
$hoogte_nieuw = $max_grootte;
$breedte_nieuw = $breedte * $factor;
}
$afbeelding_n = imagecreatetruecolor($breedte_nieuw, $hoogte_nieuw);
imagecopyresampled($afbeelding_n, $afbeelding, 0, 0, 0, 0, $breedte_nieuw, $hoogte_nieuw, $breedte, $hoogte);
imagejpeg($afbeelding_n, $map, 100);
if($ext == "gif")
{
imagegif($afbeelding_n, $map, 100);
}
elseif($ext == "jpg")
{
imagejpeg($afbeelding_n, $map, 100);
}
elseif($ext == "png")
{
imagepng($afbeelding_n, $map, 100);
}
elseif($ext == "bmp")
{
imagewbmp($afbeelding_n, $map, 100);
}
imagedestroy($afbeelding_n);
return true;
}
// Gebruiken
thumbnail($map . $naam, $thumb, $max_grootte);
?>
$map = "./plaatjes/";
$thumb_map = $map."thumbs/";
$max_grootte = 160;
function thumbnail($naam, $map, $max_grootte)
{
$ext = strtolower(end(explode(".", $naam)));
if(@imagecreatefromgif($naam))
{
$afbeelding = imagecreatefromgif($naam);
$ext_r = "gif";
}
elseif(@imagecreatefromjpeg($naam))
{
$afbeelding = imagecreatefromjpeg($naam);
$ext_r = "jpg";
}
elseif(@imagecreatefrompng($naam))
{
$afbeelding = imagecreatefrompng($naam);
$ext_r = "png";
}
elseif(@imagecreatefromwbmp($naam))
{
$afbeelding = imagecreatefromwbmp($naam);
$ext_r = "bmp";
}
else
{
return "Ongeldige Extentie";
}
$ext = ($ext == "") ? $ext_r : "";
$breedte = imagesx($afbeelding);
$hoogte = imagesy($afbeelding);
if($breedte >= $hoogte)
{
$factor = $max_grootte / $breedte;
$breedte_nieuw = $max_grootte;
$hoogte_nieuw = $hoogte * $factor;
}
else
{
$factor = $max_grootte / $hoogte;
$hoogte_nieuw = $max_grootte;
$breedte_nieuw = $breedte * $factor;
}
$afbeelding_n = imagecreatetruecolor($breedte_nieuw, $hoogte_nieuw);
imagecopyresampled($afbeelding_n, $afbeelding, 0, 0, 0, 0, $breedte_nieuw, $hoogte_nieuw, $breedte, $hoogte);
imagejpeg($afbeelding_n, $map, 100);
if($ext == "gif")
{
imagegif($afbeelding_n, $map, 100);
}
elseif($ext == "jpg")
{
imagejpeg($afbeelding_n, $map, 100);
}
elseif($ext == "png")
{
imagepng($afbeelding_n, $map, 100);
}
elseif($ext == "bmp")
{
imagewbmp($afbeelding_n, $map, 100);
}
imagedestroy($afbeelding_n);
return true;
}
// Gebruiken
thumbnail($map . $naam, $thumb, $max_grootte);
?>