zelfde verhoudingen doe je in het algemeen zo:
schaalfactor = orginele x / gewenste x
nieuwe y = orginele y / schaalfactor
Of bedoel je dat niet? (zal haast wel niet
)
schaalfactor = orginele x / gewenste x
nieuwe y = orginele y / schaalfactor
Of bedoel je dat niet? (zal haast wel niet
Combineer T.T. z'n berekening met LOST_GUNT zijn scriptje (is PHP, maar GD gebruikt overal dezelfde functies dus moeilijk moet het niet zijn in Perl) en overheers de wereld met je eigen image-resize script 
Code vind je hier.
En post het resultaat hier s.v.p., voor toekomstige vragen hierover.
Code vind je hier.
En post het resultaat hier s.v.p., voor toekomstige vragen hierover.
This can no longer be ignored.
Ik heb de volgende en werkende
code gebouwd:
Deze code opent een test.jpg en geeft deze als maximum 400 bij 300 pixels en resized hem vervolgens.
code:
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
| #!/usr/bin/perl
use GD;
use POSIX;
$file="test.jpg";
$maxwidth = "300";
$maxheight = "400";
$srcimage = GD::Image->newFromJpeg($file);
($srcW,$srcH) = $srcimage->getBounds();
$wdiff = $srcW - $maxwidth;
$hdiff = $srcH - $maxheight;
if ($wdiff > $hdiff) {
$newW = $srcW - $wdiff;
$aspect = ($newW/$srcW);
$newH = int($srcH * $aspect);
} else {
$newH = $srcH - $hdiff;
$aspect = ($newH/$srcH);
$newW = int($srcW * $aspect);
}
$newimage = new GD::Image($newW,$newH);
$newimage->copyResized($srcimage,0,0,0,0,$newW,$newH,$srcW,$srcH);
open(F,">test.jpg");
binmode F;
print F $newimage->jpeg(100);
close(F) |
Deze code opent een test.jpg en geeft deze als maximum 400 bij 300 pixels en resized hem vervolgens.