Autor Zpráva
RockFire
Profil
Dobrý den,
dělám web pro bratrance, který obsahuje galerii obrazů. Použil jsem lightbox a potřebuji zjistit, jestli není díky javascriptu možné, aby celkový obrázek byl v lightboxu menší než normálně. http://mm21.cholerik.cz/index.php?stranka=grafika Zkuste to na prvním obrázku. Lightbox se roztáhne přes celou obrazovku což je k ničemu. V FF se mi to jednu dobu zobrazovalo v novým okně zmenšeně, asi do velikost 200px×500px. Umí něco takového javascript? Protože přes 1000 obrýzku se mi editovat nechce, stačilo, že jsem musel dělat miniaturní obrýzky.
Bubák
Profil
Nic ti neodpovím, a ještě se zeptám trochu mimo téma.
Neznáš nějaký program na dávkové zpracování obrázků?
RockFire
Profil
Ne, pracoval jsem v Adobe Photoshop okno po okně.
3wl4k
Profil *
Hromadne spracovanie obrazkov?
/** Change image properties
 *	@return true - success|false - failure
 *	@filename - original file name
 *	@new_filename - output filename (always jpg)
 *	@max_x - maximal width
 *	@max_y - maximal height
 */
function resize_img( $filename, $new_filename, $max_x, $max_y)
{
	// exists/size
	$imagesize	= getimagesize( $filename);
	if( (!$max_x && !$max_y) || !isset($imagesize[0]) || !isset($imagesize[1])){
		return false;
	}

	// load img
	$img = NULL;
	switch( $imagesize[2]){
		case IMAGETYPE_GIF: { $img = imagecreatefromgif( $filename); break;}
		case IMAGETYPE_JPEG: { $img = imagecreatefromjpeg( $filename); break;}
		case IMAGETYPE_PNG: { $img = imagecreatefrompng( $filename); break;}  
		case IMAGETYPE_WBMP: { $img = imagecreatefromwbmp( $filename); break;}
		case IMAGETYPE_XBM: { $img = imagecreatefromxbm( $filename); break;}
		default:
			return false;
	}

	// just for case image wan't loaded
	if(!$img){
		return false;
	}

	// "guess" size
	$width	= 0;
	$height	= 0;
	if( $max_x) {
		$width = $max_x;
		$height = round( $imagesize[1] * $width / $imagesize[0]);
	}
	if( $max_y && ( !$max_x || $height > $max_y)) {
		$height = $max_y;
		$width = round( $imagesize[0] * $height / $imagesize[1]);
	}

	// print image
	$imgnew	= imagecreatetruecolor($width, $height);
	if(!imagecopyresampled($imgnew, $img, 0, 0, 0, 0, $width, $height, $imagesize[0], $imagesize[1])){
		return false;
	}
	return imagejpeg( $imgnew, $new_filename);
}

?>


A ked to pouzijes ako
foreach( glob( "big_dir/*") as $filename){
	$new = str_replace( "big_dir/", "small_dir/", $filename);
	resize_img( $filename, $new, 100, 200);
}

Tak to budes mat celkom rychlo, len nezabudnut odstavit mem/time limity a povolit zapis do daneho diru ;)))
Nox
Profil
RockFire
XnView má dobře zpracované hromadné zpracování obrázků, také hromadné přejmenování
joe
Profil
RockFire
Photoshop umí akce, pomocí kterých jde zmenšit obrázky hromadně... a nejenom zmenšit, ale třeba i během toho přidat vodoznak, různě fotku upravit apod.
Tomasds
Profil
Bubák
http://www.faststone.org/FSViewerDetail.htm

faststone je sice "jen" prohlížeč, ale je free a umí všechno, co by tě mohlo napadnout. Z hromadných akcí namátkově: resize, brightness, contrast, crop, add text, watermark, border, rotate..

aha, pardon, už jsem v obraze.
Takže ještě dodatek pro RockFire: lze v tom i hromadně odstraňovat EXIF. Ty náhledy bez něj nebudou mít 25kB, ale možná 10.

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: