» »

Dejanski resize slike

Dejanski resize slike

Ma$terM|nd ::

Zdravo

Imam en problem in sicer... Kako naj nardim da se bodo slike na spletni strani hitreje nalagale. Ker imam namreč narejeno galerijo v kateri je cca 60 slik velikosti 1280*960 (povprečno 500KB na sliko) in se celotna galerija nalaga obupno dolgo. Narejeno je tako da uporabnik klika male slike katere se prikazujejo v večjem okvirju. Ugotovil sem da 'width' in 'height' v 'img' tagu ne pomagata prav veliko. Vidi se sicer manjše, vendar velikost in s tem tudi čas nalaganja slike ostane enak.

Upam da me razumete kaj bi rad.

Aja, uporabljam pa PHP.

st0jko ::

Naredi ločene, manjše thumbnaile..
keks?

HardFu ::

Jap, tudi ce v img tag das dimenzije, je treba celo sliko nalozit, predlagam da naredis loceno mapo znotraj mape s slikami (sam jo ponavadi poimenujem 'thumbs'). Potem original slike skopiraj nekam in jih pomanjsaj na eno primerno velikost (120x90 recimo). Nato jih skopiraj v novo ustvarjeno mapo (Brez, da bi jim spremenil filename) in te slike potem prikazi na strani znotraj a-taga, ki naj kaze na original, nekako takole:

<a href="images/slika.jpg"><img src="images/thumbs/slika.jpg alt="" /></a>


Ko bos velik, pa lahko dodas se kaksen lightbox :)
http://codeable.io

bluefish ::

sedaj pa manjka samo še PHP koda, ki slike v eni mapi samodejno zmanjša in le te potem da v drugo mapo :) .

kogledom ::

Zakaj pa php koda?
Easy Thumbnails je to kar rabiš.

bluefish ::

to gre, dokler ročno prenašaš slike na server. Zatakne pa se, ko imaš v ozadju postavljen nek CMS ipd.

kogledom ::

blueFish, evo:
rabiš edino gd2 da ti dela.
$imagefolder  = 'slike/izvor/';
$thumbsfolder = 'slike/thumbs/';
$thumbWidth = 150;
$thumbHeight =150;

$pics=directory($imagefolder,"jpg,JPG,JPEG,jpeg,png,PNG");

foreach ($pics as $p)
	{
    createthumb($imagefolder.$p,$thumbsfolder.$p,$thumbWidth,$thumbHeight);
	}

/*
	Function createthumb($name,$filename,$new_w,$new_h)
	creates a resized image
	variables:
	$name		Original filename
	$filename	Filename of the resized image
	$new_w		width of resized image
	$new_h		height of resized image
*/
function createthumb($name,$filename,$new_w,$new_h)
{
#    echo("izdelal sem sliko $name <br />");
	$system=explode(".",$name);
	if (preg_match("/jpg|jpeg/",$system[1])){$src_img=imagecreatefromjpeg($name);}
	if (preg_match("/png/",$system[1])){$src_img=imagecreatefrompng($name);}
	$old_x=imageSX($src_img);
	$old_y=imageSY($src_img);
	if ($old_x > $old_y)
	{
		$thumb_w=$new_w;
		$thumb_h=$old_y*($new_h/$old_x);
	}
	if ($old_x < $old_y)
	{
		$thumb_w=$old_x*($new_w/$old_y);
		$thumb_h=$new_h;
	}
	if ($old_x == $old_y)
	{
		$thumb_w=$new_w;
		$thumb_h=$new_h;
	}
	$dst_img=ImageCreateTrueColor($thumb_w,$thumb_h);
	imagecopyresized($dst_img,$src_img,0,0,0,0,$thumb_w,$thumb_h,$old_x,$old_y);
	if (preg_match("/png/",$system[1]))
	{
		imagepng($dst_img,$filename);
	} else {
		imagejpeg($dst_img,$filename,95);
	}
	imagedestroy($dst_img);
	imagedestroy($src_img);
}

/*
        Function directory($directory,$filters)
        reads the content of $directory, takes the files that apply to $filter
		and returns an array of the filenames.
        You can specify which files to read, for example
        $files = directory(".","jpg,gif");
                gets all jpg and gif files in this directory.
        $files = directory(".","all");
                gets all files.
*/
function directory($dir,$filters)
{
	$handle=opendir($dir);
	$files=array();
	if ($filters == "all"){while(($file = readdir($handle))!==false){$files[] = $file;}}
	if ($filters != "all")
	{
		$filters=explode(",",$filters);
		while (($file = readdir($handle))!==false)
		{
			for ($f=0;$f<sizeof($filters);$f++):
				$system=explode(".",$file);
				if ($system[1] == $filters[$f]){$files[] = $file;}
			endfor;
		}
	}
	closedir($handle);
	return $files;
}

bluefish ::

Hudimana, človek se malo pošali, pa kljub temu dobi uporaben odgovor :O . Redko, ni kaj.
Hvala.


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

Hitrost spletne strani Localhost vs. Web

Oddelek: Izdelava spletišč
372346 (1076) Netrunner
»

dnevna menjava slik skripta

Oddelek: Izdelava spletišč
131560 (1242) VASkO
»

[PHP]Include

Oddelek: Izdelava spletišč
61207 (1129) |ViPeR|
»

GD library

Oddelek: Izdelava spletišč
101174 (1006) rokpok
»

Neubogljiv Dreamweaver MX

Oddelek: Izdelava spletišč
162053 (1812) Crimson_Shadow

Več podobnih tem