webForumDet fria alternativet

thumbmails...

3 svar · 368 visningar · startad av SONICdust

SONICdustMedlem sedan nov. 2003199 inlägg
#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...

PeddaMedlem sedan juni 20004 880 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;
	}
}
lunne82Medlem 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

SONICdustMedlem sedan nov. 2003199 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 :(

Genererad på 381 ms · cache AV · v20260730165559-full.f96bc7eb