---
title: "Skapa thumbnails"
type: "forum-thread"
url: "https://www.webforum.nu/amne/php/102370-skapa-thumbnails"
topic: "PHP"
topic_url: "https://www.webforum.nu/amne/php"
author: "Patrik81"
published: "2004-04-26T16:05:09.000Z"
updated: "2007-07-11T18:01:42.000Z"
replies: 11
views: 1036
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/102370-skapa-thumbnails"
---

# Skapa thumbnails

## #1 — Patrik81, 2004-04-26T16:05Z

Alltså, jag har sökt här på wF, och det jag fann trodde jag skulle räcka, men nu inser jag att jag inte hajar ett skit...

Låt oss säga att jag har ett gäng bilder i en mapp, och dessa vill jag skapa thumbnails av, alltså skapa fysiska bild-filer på hårddisken, bara i mindre format, vilka funktioner behöver jag då använda mig utav?

Just nu känns det bara som om jag har ett virrvarr av kod, tror att det enklaste är att slänga det jag har, och börja om från början (plus att jag skäms så över den fulkod jag knådat ihop och misshandlat, så jag vill helst inte visa den) ;)

Jag får intrycket av att man antingen redan behöver en fil på hårddisken, som man sedan skriver till, eller att man har en php-fil fyld med typ imagecreate-funktioner som sedan fixar till det.

För till exempel (kopierat från php.net)
bool imagecopyresampled ( resource dst_im, resource src_im, int dstX, int dstY, int srcX, int srcY, int dstW, int dstH, int srcW, int srcH)

Förklara för mig vad "resource dst_im" är.  Det måste ju vara en bildfil redan, eller något... eller?

Snälla hjälp mig ur denna förvirring.

MVH Patrik

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

## #2 — Matte, 2004-04-26T17:36Z

Först måste du läsa in den fil du vill förminska. Det gör du t.ex med:

```php
$src_im = imagecreatefromjpeg('sökväg_till/filnamn.jpg');
```

 
Där kanske det också varit aktuellt med imagecreatefromgif eller imagecreatefrompng.

Sedan måste du skapa bilden som ska innehålla din thumbnail:

```php
$dstW = 100;  // Bredd på thumbnail
$dstH = 100; // Höjd på thumbnail
$dst_im = imagecreatetruecolor($dstW, $dstH);
```

 

**dstX** och  **dstY** är var någonstans på din $dst_im (thumbnail) du ska lägga den förminskade bilden. Normalt lägger du den i högra över hörnet, vilket ger värden 0 och 0.

**srcX** och **srcY** är var någonstans på originalbilden du vill börja hämta. Vad du lägger för värden här beror lite på hur du vill skapa din thumbnail. Kvadratisk, proportionell, klippa ut kvadrat från ej kvadratisk bild. För enkelhets skull sätter vi dessa värden till 0 och 0. 
Detta kommer att ge dig en förvanskad bild, men du kan senare arbeta vidare på det för att få den variant som du tycker är bäst.
Du har även då förståelsen över andras lösningar, och kan hitta tips där.

Sedan behöver du bredden och höjden på originalfilen. Det får du med:

```php
$srcW = imagesx($src_im);
$srcH = imagesy($src_im);
```

 

Nu är det dags att tillverka din thumbnail:

```php
imagecopyresampled ( $dst_im, $src_im, 0, 0, 0, 0, $dstW, $dstH, $srcW, $srcH);
```

 

Sedan behöver du skapa en fil av den. Vi skapar en JPEG-fil:

```php
imagejpeg($dst_im, 'sökväg/thumb_filnamn.jpg', 90);
```

 
Den sista siffran står för komprimering. Ju högre tal desto mindre komprimering (och högre kvalitet och filstorlek).

Alternativt kunde du skickat bilden direkt till webbläsaren:

```php
header('Content-type: image/jpeg');
imagejpeg($dst_im, '', 90);
```

 

Slutligen är det snyggt att städa upp efter sig:

```php
imagedestroy($src_im);
imagedestroy($dst_im);
```

Hoppas det var till någon hjälp för dig. :)

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

## #3 — Patrik81, 2004-04-26T20:35Z

Hatten av för dig Matte, det var en helt suverän genomgång!
Min kod var inte någonstans i närheten av att ha kunnat fungera.

Stort tack, nu skall här experimenteras.
MVH Patrik

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

## #4 — filipbh, 2007-07-09T17:33Z

Ursäkta att jag lånar denna tråd men jag tyckte skriptet var bra men har lite frågor. Hur ska man göra om ursprungsbilden är för stor? Är det nån inställning eller räcker det med kod i skriptet?

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

## #5 — Patrik81, 2007-07-10T07:27Z

Hejsan, hur menar du med för stor?
Är det att bilden är för hög eller bred, och därmed inte kvadratisk?

Mvh Patrik

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

## #6 — filipbh, 2007-07-10T12:18Z

> **Patrik81 skrev:**
>
> Hejsan, hur menar du med för stor?
> Är det att bilden är för hög eller bred, och därmed inte kvadratisk?
> 
> Mvh Patrik

Nej, jag menar att bilden är för stor byte-mässigt. Jag har bilder som ligger på i snitt 1.5 MB men skriptet vill inte förminska bilderna för, vad jag tror, det tar för lång tid. Ska göra ett försök igen och visa vad som kommer upp...

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

## #7 — filipbh, 2007-07-10T12:23Z

Detta kommer upp:
Fatal error: Allowed memory size of 16777216 bytes exhausted (tried to allocate 12288 bytes) in thumb.php on line 3

Rad 3 är:
$src_im = imagecreatefromjpeg('P7090020.JPG');

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

## #8 — fiddler, 2007-07-10T15:01Z

Din bild är för stor, inte bytemässigt utan pixelmässigt. Om du har möjlighet att ändra inställningarna i php.ini borde det gå, annars får du helt sonika minska ner bilderna innan du laddar upp dem.

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

## #9 — filipbh, 2007-07-10T15:50Z

> **fiddler skrev:**
>
> Din bild är för stor, inte bytemässigt utan pixelmässigt. Om du har möjlighet att ändra inställningarna i php.ini borde det gå, annars får du helt sonika minska ner bilderna innan du laddar upp dem.

Det vet jag inte om jag kan. Sidan ligger hos One... Och måste jag ändra bilderna ett steg kan jag lika gärna förminska bilden tillräckligt från början. Jag ska prata med One och se vad de kan göra. Annars får jag gå ner en upplösning på kameran.

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

## #10 — filipbh, 2007-07-11T12:09Z

För er som har samma problem och har One som webbhotell kan jag meddela att det för tillfället inte går. De har pratat om att ändra minnesgränsen för kunderna och om det blir verklighet kommer det även gå att förminska de större bilderna.

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

## #11 — woodi, 2007-07-11T16:13Z

Installera ImageMagick!  
<http://www.imagemagick.com/>

Enkelt att göra det mesta med bilder.

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

## #12 — filipbh, 2007-07-11T18:01Z

Tack för tipset

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

---

Tråden på webben: https://www.webforum.nu/amne/php/102370-skapa-thumbnails
