---
title: "Nerskalning av bild"
type: "forum-thread"
url: "https://www.webforum.nu/amne/php/172165-nerskalning-av-bild"
topic: "PHP"
topic_url: "https://www.webforum.nu/amne/php"
author: "Asa"
published: "2008-06-13T08:26:58.000Z"
updated: "2008-06-13T10:04:05.000Z"
replies: 4
views: 514
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/php/172165-nerskalning-av-bild"
---

# Nerskalning av bild

## #1 — Asa, 2008-06-13T08:26Z

Jag behöver en funktion som skalar ner en bild så den max kan vara 120 px på bredden samt 120 px på höjden. Den skall skalas om endast vid visningen av bilden. Thumbbilden skall inte sparas utan bara visas som liten.

Har en ruta som är 130 x 130 px där detta skall visas i.

Om en bild är ex: 160 x 240 px så skall den så skalas ner så att bilden kommer bli 80 x 120 px. Sen om nästa bild har 240 x 160 px så blir den 120 x 80 px. o.s.v

Här ser ni ifall ni inte förstår hur jag skulle vilja ha det. Det är inte min sida men det visar hur det skall vara: <http://www.hansbillgren.se/galleri_40.php>

Någon som kan hjälpa mig? Behövs det någon komponent för detta? Eller kan det lösas iallafall?

Permalänk: https://www.webforum.nu/p/172165

## #2 — fiddler, 2008-06-13T08:43Z

Det räcker att du har GD aktiverat, vilket du troligtvis har.
Jag gjorde en gång i tiden exakt det skript du beskriver, jag ska leta lite...

Permalänk: https://www.webforum.nu/p/2118007

## #3 — Asa, 2008-06-13T09:02Z

Tackar :) För GD vet jag inget alls om... :/

Permalänk: https://www.webforum.nu/p/2118015

## #4 — fiddler, 2008-06-13T09:19Z

Tror detta ska fungera :)

Döp filen till thumb.php

```php
<?
//Skriptet tar argumenten från URL:n ex: ?pic=bild.jpg
function thumb($pic)
{
	$max = 120;// Max
	$kvalitet = 80;// <=100

	// Läser in den stora bilden och kollar storleken på den.
	$stor_bild = imagecreatefromjpeg ($pic);
	$stor_x = imagesx ($stor_bild);
	$stor_y = imagesy ($stor_bild);

	// Räknar ut $k som är förhållandet mellan bredden och höjden.
	$k = ($stor_x > $stor_y)?$max/$stor_x:$max/$stor_y;

	// Räknar ut bredden och höjden på mini-bilden.
	$x = round($k * $stor_x);
	$y = round($k * $stor_y);

	// Skapar bilden.
	$liten_bild = imagecreatetruecolor ($x, $y);
	imagecopyresampled ($liten_bild, $stor_bild, 0, 0, 0, 0, $x, $y, $stor_x, $stor_y);

	// Skriver ut bilden
	imagejpeg ($liten_bild, "", $kvalitet);

	//Tar bort bilderna ur minnet på PHP.
	imagedestroy ($liten_bild);
	imagedestroy ($stor_bild);
}

if(isset($_GET['pic']))
	{
		thumb($_GET['pic']);
	}
?>
```

Ex:

```
<img src="thumb.php?pic=bilder/bild.jpg" />
```

Permalänk: https://www.webforum.nu/p/2118020

## #5 — Asa, 2008-06-13T10:04Z

Verkar funka men skall testa vidare och återkommer om jag märker att det inte funkar som det ska göra.

Permalänk: https://www.webforum.nu/p/2118026

---

Tråden på webben: https://www.webforum.nu/amne/php/172165-nerskalning-av-bild
