---
title: "bakgrundsfärg vid imagecreatefromjpeg"
type: "forum-thread"
url: "https://www.webforum.nu/amne/php/120866-bakgrundsfärg-vid-imagecreatefromjpeg"
topic: "PHP"
topic_url: "https://www.webforum.nu/amne/php"
author: "soocks"
published: "2005-01-24T13:22:50.000Z"
updated: "2005-01-24T18:34:51.000Z"
replies: 1
views: 232
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/120866-bakgrundsfärg-vid-imagecreatefromjpeg"
---

# bakgrundsfärg vid imagecreatefromjpeg

## #1 — soocks, 2005-01-24T13:22Z

jag håller på med ett script som ska förminska bilder till thumbnails, för användning i en webshop. 

saken är den att thumbnailsen ska ha storleken 130x110 och är bredden/höjden mindre än detta ska motivet placeras utifrån mitten och resten fyllas med vit färg.

så lång har jag också kommit, förutom att den vita färgen är svart och skapar antingen två svarta fält på sidorna av motivet eller ovan och under.

kika på detta så kanske ni förstår bättre :)

![](http://dump.colonized.net/1a.jpg) 
ska bli \>\>
![](http://dump.colonized.net/1b.jpg) 

![](http://dump.colonized.net/2a.jpg) 
ska bli \>\>
![](http://dump.colonized.net/2b.jpg) 

har försökt med lite olika metoder att få dessa fält vita istället för svarta, men utan att lyckas.  det närmaste jag kommit är med att använda fyllda rektanglar "över" det svarta, men det känns osmidigt.

finns det någon smidig lösning tro?

tack på förhand!

edit: ni får koden också :)

```php

$srcImg = "bild.jpg";

$srcInfo = GetImageSize($srcImg);

$dstWidth = 130;
$dstHeight = 110;

if ($srcInfo[1] <= $srcInfo[0]) {
	

	$srcX = 0;
	$srcY = round(($srcInfo[1] - $srcInfo[0])/2);
	$srcW = $srcInfo[0];
	$srcH = $srcInfo[0];

	
} else {

	$srcX = round(($srcInfo[0] - $srcInfo[1])/2);
	$srcY = 0;
	$srcW = $srcInfo[1];
	$srcH = $srcInfo[1];

}

header ("Content-type: image/jpeg");

$im_src = imagecreatefromjpeg($srcImg);
$img_thumb = imageCreateTruecolor($dstWidth, $dstHeight);

imagecopyresampled ($img_thumb, $im_src, 0, 0, $srcX, $srcY, $dstWidth, $dstHeight, $srcW, $srcH);

imagejpeg($img_thumb);

ImageDestroy($img_thumb);
ImageDestroy($im_src);
```

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

## #2 — soocks, 2005-01-24T18:34Z

verkar löst det själv, vet inte hur pass smidigt dock, men det funkar..

```php

	$srcImg = "bild.jpg";
		
	$srcInfo = getimagesize($srcImg);
		
	
	$dstWidth = 130;
	$dstHeight = 110;
	
		
	if ($srcInfo[1] <= $srcInfo[0]) {
		$srcX = 0;
		$srcY = round(($srcInfo[1] - $srcInfo[0])/2);
		$srcWidth = $srcInfo[0];
		$srcHeight = $srcInfo[0];
		
		$fillX = $dstWidth;		
		$fillY = $srcY * -($dstHeight / $srcHeight);
		
		$fillXb = 0;			
		$fillYb = $dstHeight - $fillY;
		
	} else {
		$srcX = round(($srcInfo[0] - $srcInfo[1])/2);
		$srcY = 0;
		$srcWidth = $srcInfo[1];
		$srcHeight = $srcInfo[1];
		
		$fillX = $srcX * -($dstWidth / $srcWidth);		
		$fillY = $dstHeight;
		
		$fillXb = $dstWidth - $fillX;
		$fillYb = 0;
	
	}
	

	header ("Content-type: image/jpeg");
	header('Content-Disposition: inline; filename="prodimg.jpg"');
	
	$srcImg = imagecreatefromjpeg($srcImg);
	$dstImg = imagecreatetruecolor($dstWidth, $dstHeight);
	
	imagecopyresampled($dstImg, $srcImg, 0, 0, $srcX, $srcY, $dstWidth, $dstHeight, $srcWidth, $srcHeight);
	
	
	$bgColor = imagecolorallocate($dstImg, 255,255,255);
	imagefilledrectangle($dstImg, 0, 0, $fillX, $fillY, $bgColor);
	imagefilledrectangle($dstImg, $fillXb, $fillYb, $dstWidth, $dstHeight, $bgColor);
	
	imagejpeg($dstImg, null, 100);
	
	imagedestroy($dstImg);
	imagedestroy($srcImg);
```

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

---

Tråden på webben: https://www.webforum.nu/amne/php/120866-bakgrundsfärg-vid-imagecreatefromjpeg
