webForumDet fria alternativet
Logga in / Bli medlem

thumbmails...

PHP

3 svar · 370 visningar · startad av SONICdust

Medlem sedan nov. 2003196 inlägg
Trådstart#1

hej,
Jag har kollat runt lite om thumbmails men får ingen klar het i det. På serven som jag använder är GD installerat. Men ännu så länge hjälper det mig inte.

Jag har en sida där jag laddar upp information till MySQL och där laddas även en bild upp som sparas på serven och bilden får id:nummret plus filnamnet som namn. som sparas i ett fält i databasen.

Nu vill jag också av den bilden skapa en thumbnail av den bilden. Det är här jag inte hänger med hur jag ska göra när jag har tittat runt på wf/nätet/osv.

Skulle gärna vilja få lite tips.
Bilderna kan vara i olika storlekar.
Behövs det ett till fält i databasen för att spara ner thumbnails filnamn, eller kan man göra en mindre bild av den redan stora bilden?

Tacksam om någon kan ge mig lite hjälp eller tips hur jag ska gå till väga...

Medlem sedan juni 20006 031 inlägg
#2

Här är lite kod som jag skrivit och använt på en sida.
MySQL är inte med utan filerna får sitt ursprungliga namn utan åäö. Och det måste vara jpg filer, men det kanske är ok?

Men det kan ju vara till hjälp för dig ändå. Plocka in MySQL och gör ändringar som du vill ha och skriv igen om du får problem.

// Ladda upp ny bild
if ($_POST['fil'] == Ja){
$mapp = "../thumbs/";
$mapp2 = "../foton/";

	// Ta bort STORA bokstäver
	$_FILES["file"]["name"] = strtolower($_FILES["file"]["name"]);
	
	// Ta bort mellanslag
	$_FILES["file"]["name"] = str_replace(' ', '_', $_FILES["file"]["name"]);
	
	// Ta bort å
	$_FILES["file"]["name"] = str_replace('å', 'a', $_FILES["file"]["name"]);
	
	// Ta bort ä
	$_FILES["file"]["name"] = str_replace('ä', 'a', $_FILES["file"]["name"]);
	
	// Ta bort ö
	$_FILES["file"]["name"] = str_replace('ö', 'o', $_FILES["file"]["name"]);
	
if (file_exists($mapp.$_FILES['file']['name'])) {
   	header("location: galleri.php?Uppladdad=Kopia");
	exit;
}
	if(!empty($_FILES['file']['name'])) { 
	$file = $_FILES['file']; 
	$storlek = getimagesize($_FILES['file']['tmp_name']);
	// storlek på tumnagel, i detta exempel om en bild är 800*400
	// så blir tumnageln 90*45
	$nybredd = 90;
	$nyhojd = 90;
	// storlek på stora bilden, i detta exempel om en bild är 800*400
	// så blir bilden 600*300
	$nybredd2 = 600;
	$nyhojd2 = 600;
	// kolla filändelsen  
	$filandelse = explode('.',$file['name']); 
	$sort = count($filandelse) - 1; 
	$so = $filandelse[$sort];
	// Allowed filetypes
	if ($so != 'jpg'){   
		// Fel filtyp 
		header("location: galleri.php?Uppladdad=Nej");
		exit;
	}
	// skapa tumnagel
	if (($storlek[0] - $nybredd) >= ($storlek[1] - $nyhojd)) {
		$bildbredd = $nyhojd;
		$bildhojd = ($nybredd/$storlek[0])*$storlek[1];
	} else {
		$bildhojd = $nyhojd;
		$bildbredd = ($bildhojd/$storlek[1])*$storlek[0]; 
	}
	$bild_kalla = imagecreatefromjpeg($file['tmp_name']);
	
	// GD2
	$bild_skapa = imagecreatetruecolor($bildbredd, $bildhojd);
	imagecopyresampled ($bild_skapa, $bild_kalla, 0, 0, 0, 0, $bildbredd, $bildhojd, $storlek[0], $storlek[1]);
	
	// GD1
	//$bild_skapa = imagecreate($bildbredd, $bildhojd);
	//imagecopyresized ($bild_skapa, $bild_kalla, 0, 0, 0, 0, $bildbredd, $bildhojd, $storlek[0], $storlek[1]);
	
	imagejpeg ($bild_skapa, $mapp.$file['name'], 100);
	imagedestroy ($bild_skapa);
	// skapa stor bild
	if (($storlek[0] - $nybredd2) >= ($storlek[1] - $nyhojd2)) {
		$bildbredd = $nyhojd2;
		$bildhojd = ($nybredd2/$storlek[0])*$storlek[1];
	} else {
		$bildhojd = $nyhojd2;
		$bildbredd = ($bildhojd/$storlek[1])*$storlek[0]; 
	}
	$bild_kalla = imagecreatefromjpeg($file['tmp_name']);
	
	// GD2
	$bild_skapa = imagecreatetruecolor($bildbredd, $bildhojd);
	imagecopyresampled ($bild_skapa, $bild_kalla, 0, 0, 0, 0, $bildbredd, $bildhojd, $storlek[0], $storlek[1]);
	
	// GD1
	//$bild_skapa = imagecreate($bildbredd, $bildhojd);
	//imagecopyresized ($bild_skapa, $bild_kalla, 0, 0, 0, 0, $bildbredd, $bildhojd, $storlek[0], $storlek[1]);
	
	imagejpeg ($bild_skapa, $mapp2.$file['name'], 100);
	imagedestroy ($bild_skapa);
	header("Location: galleri.php?Uppladdad=Ja");
	exit;
	}
}
Medlem sedan dec. 2003153 inlägg
#3

Diskuterades för inte så länge sen här i forumet... här:
http://www.webforum.nu/showthread.php?s=&threadid=109091&forumid=23

Medlem sedan nov. 2003196 inlägg
#4

Tack Pedda & lunne82 för svaren, ska kolla upp koden och länken efter jag har skrivit klart en härlig rapport :(

264 ms totalt · 4 externa anrop · v20260731065814-full.51f67c91
121 ms — deklarationer (db)
0 ms — hämta statistik (cache)
138 ms — hämta tråd, inlägg och bilagor (db)
122 ms — ändringar (db)