webForumDet fria alternativet

imagecopyresized() med bakgrundsfärg?

PHP

3 svar · 422 visningar · startad av bassebhu

Medlem sedan nov. 20016 480 inlägg
Frågan#1

Hej alla glada!

Jag laddar upp och skalar om bilder med imagecopyresized() men går det att få så att alla bilder blir 100x100px och behåller sina ursprungliga proportioner fast med svart bakgrund om det behövs, samt placerar bilden helt centrerat åt båda håll?

Taxi!

Medlem sedan juli 20023 617 inlägg
#2

Jag hackade ihop detta för en sida jag gjorde.

<?
//Skriptet tar argumenten från URL:n ex: ?album=ZKV8--&pic=bild.jpg
function thumb($galleri,$name)
{
	//Thumbnail-skript
	
	$bild_url = $galleri.$name;
	$y = 76; //Ny höjd på bilden
	$x = $y; //Ny bredd på bilden

	// Läser in den stora bilden och kollar storleken på den.
	$stor_bild = imagecreatefromjpeg ($bild_url);
	$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)?$x/$stor_x:$y/$stor_y;

	// Räknar ut bredden och höjden på mini-bilden.
	$liten_x = round($k * $stor_x);
	$liten_y = round($k * $stor_y);
	
	//Startpunkter för lilla bilden
	$dst_x = ($liten_x > $liten_y)?"0":round(($x-$liten_x)/2);
	$dst_y = ($liten_y > $liten_x)?"0":round(($y-$liten_y)/2);

	// Skapar bilden.
	$liten_bild = imagecreatetruecolor ($x, $y);
	$white = imagecolorallocate($liten_bild, 255, 255, 255);
	$border = imagecolorallocate($liten_bild, 230, 230, 230);
	imagefill($liten_bild, 0, 0, $white);//Färga bakgrunden vit
	imagecopyresampled ($liten_bild, $stor_bild, $dst_x, $dst_y, 0, 0, $liten_x, $liten_y, $stor_x, $stor_y);
	imagerectangle($liten_bild,	$dst_x, $dst_y, $dst_x+$liten_x-1, $dst_y+$liten_y-1, $border);

	// Skriver ut bilden
	imagejpeg ($liten_bild);

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

if(isset($_GET['album']))
	{
		$album = "../album/".$_GET['album']."/";
		$pic = $_GET['pic'];
		thumb($album,$pic);
	}
?>
Medlem sedan nov. 20016 480 inlägg
#3

Funkade prima! Tackar! :)

Medlem sedan juli 20023 617 inlägg
#4

Kul! :)

265 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
129 ms — deklarationer (db)
0 ms — hämta statistik (cache)
132 ms — hämta tråd, inlägg och bilagor (db)
130 ms — ändringar (db)