|
| resize/crop hjælp Fra : Christoffer \(Guide\~ |
Dato : 12-08-06 16:08 |
|
Hej, jeg skal lave nogle thumbnails men er i tvivl om hvordan jeg skal
gøre..
har nogle billeder af varierende størrelse (fra 200*250 til 1280*1024) og de
skal alle have et udsnit på 90*90 ..
Hvis jeg resizer vil det så ikke blive for gnidret med de store billeder?
- hvis ikke vil jeg meget gerne have hjælp til hvordan jeg skal gøre
Men spørgsmålet er mere er det muligt at lave et crop/beskæring af et
billede så det bliver 90*90 ?
Christoffer
| |
Jacob Atzen (12-08-2006)
| Kommentar Fra : Jacob Atzen |
Dato : 12-08-06 16:13 |
|
On 2006-08-12, Christoffer (Guide) <hjeir@motherdk.dk> wrote:
> Hej, jeg skal lave nogle thumbnails men er i tvivl om hvordan jeg skal
> gøre..
> har nogle billeder af varierende størrelse (fra 200*250 til 1280*1024) og de
> skal alle have et udsnit på 90*90 ..
>
> Hvis jeg resizer vil det så ikke blive for gnidret med de store billeder?
> - hvis ikke vil jeg meget gerne have hjælp til hvordan jeg skal gøre
>
> Men spørgsmålet er mere er det muligt at lave et crop/beskæring af et
> billede så det bliver 90*90 ?
GD billedbehandlingsbiblioteket følger med PHP, kig på funktionerne
deri.
--
Med venlig hilsen
- Jacob Atzen
| |
Christoffer \(Guide\~ (12-08-2006)
| Kommentar Fra : Christoffer \(Guide\~ |
Dato : 12-08-06 16:45 |
|
"Jacob Atzen" <jacob@aub.dk> skrev i en meddelelse
news:slrnedrrvh.1vqu.jacob@tank.aub.dk...
> On 2006-08-12, Christoffer (Guide) <hjeir@motherdk.dk> wrote:
> > Hej, jeg skal lave nogle thumbnails men er i tvivl om hvordan jeg skal
> > gøre..
> > har nogle billeder af varierende størrelse (fra 200*250 til 1280*1024)
og de
> > skal alle have et udsnit på 90*90 ..
> >
> > Hvis jeg resizer vil det så ikke blive for gnidret med de store
billeder?
> > - hvis ikke vil jeg meget gerne have hjælp til hvordan jeg skal gøre
> >
> > Men spørgsmålet er mere er det muligt at lave et crop/beskæring af et
> > billede så det bliver 90*90 ?
>
> GD billedbehandlingsbiblioteket følger med PHP, kig på funktionerne
> deri.
Jeg har også været igang med det tidligere, men synes ikke jeg kunne finde
rundt i det.. har sakset mig frem til en kode som jeg ville tro virker
(uploadet virker også fint ) men billedet bliver i de samme dimensioner
istedet for 90*90
function resize( $filename, $newfilename, $maxw, $maxh )
{
$srcim = imagecreatefromjpeg( $filename );
$ow = imagesx( $srcim );
$oh = imagesy( $srcim );
$wscale = $maxw / $ow;
$hscale = $maxh / $oh;
$scale = ( $hscale < $wscale ? $hscale : $wscale );
$nw = round( $ow * $scale, 0 );
$nh = round( $oh * $scale, 0 );
$dstim = imagecreatetruecolor( $nw, $nh );
imagecopyresampled( $dstim, $srcim, 0, 0, 0, 0, $nw, $nh, $ow,
$oh );
imagejpeg( $dstim, $newfilename, 85 );
imagedestroy( $dstim );
imagedestroy( $srcim );
}
## Hvis der er uploadet billede
if($_POST[upload]) {
$fil = basename( ( !empty( $_POST['billede'] ) ? $_POST['billede'] :
'billede.jpg' ) );
resize( $fil, '', 90, 90 );
$dir = "portofolio/".$_FILES[billede][name];
move_uploaded_file($_FILES[billede][tmp_name],$dir);
print "<h4>filen er nu uploadet!</h4>";
}
| |
Jacob Atzen (12-08-2006)
| Kommentar Fra : Jacob Atzen |
Dato : 12-08-06 17:10 |
|
On 2006-08-12, Christoffer (Guide) <hjeir@motherdk.dk> wrote:
> Jeg har også været igang med det tidligere, men synes ikke jeg kunne finde
> rundt i det.. har sakset mig frem til en kode som jeg ville tro virker
> (uploadet virker også fint ) men billedet bliver i de samme dimensioner
> istedet for 90*90
>
> function resize( $filename, $newfilename, $maxw, $maxh )
> {
> $srcim = imagecreatefromjpeg( $filename );
> $ow = imagesx( $srcim );
> $oh = imagesy( $srcim );
> $wscale = $maxw / $ow;
> $hscale = $maxh / $oh;
> $scale = ( $hscale < $wscale ? $hscale : $wscale );
> $nw = round( $ow * $scale, 0 );
> $nh = round( $oh * $scale, 0 );
Du skalerer billedet med den samme faktor i både bredde og højde, ergo
vil det efter skaleringen have samme forhold mellem bredde og højde.
Hvis du vil have det ud i præcis 90x90 så skal du bruge:
$nw = 90;
$nh = 90;
--
Med venlig hilsen
- Jacob Atzen
| |
|
|