Проблем с пропорционално разтегляне на изображение

Gamerz

Registered
Здравейте,

Имам сайт в който нещата се постват като на стена. В смисъл едно след друго и всички изглеждат по един и същи начин:

[js]Изображение бутони




инфо[/js]



Та мисълта ми е че искам когато някой постне изображение, то да не става по-широко от 450 пиксела, но в същото време ако е малко по-високо да не ми го сбива и смачква по никакъв начин. Някой може ли да ми каже как да изглежда кода за да постигна този ефект? Един вид да ми свива изображенията, но пропорционално като в същото време му задам някакви параметри на широчина и височина които да не преминава никога. Ако се сещате в този сайт 9gag как качваш изображение и ти го прави нормално е по подобен начин искам да стане и при мен....
 

M1tq96

Registered
PHP:
function make_thumb($src,$dest,$desired_width)
{

	/* read the source image */
	if(end(explode(".",$src)) == "JPG" ||  end(explode(".",$src)) == "jpg" ||  end(explode(".",$src)) == "jpeg") {	$source_image = imagecreatefromjpeg($src);} else{	$source_image = imagecreatefrompng($src);	}

	$width = imagesx($source_image);
	$height = imagesy($source_image);
	
	/* find the "desired height" of this thumbnail, relative to the desired width  */
	$desired_height = floor($height*($desired_width/$width));
	
	/* create a new, "virtual" image */
	$virtual_image = imagecreatetruecolor($desired_width,$desired_height);
	
	/* copy source image at a resized size */
	imagecopyresized($virtual_image,$source_image,0,0,0,0,$desired_width,$desired_height,$width,$height);
	
	/* create the physical thumbnail image to its destination */
	if(end(explode(".",$src)) == "jpeg"  || end(explode(".",$src)) == "jpg"  || end(explode(".",$src)) == "JPG" || end(explode(".",$src)) == "JPEG")
	{
	imagejpeg($virtual_image,$dest,100);
	}else{
		   	imagepng($virtual_image,$dest);
			 }
}

ето ти един 100% работещ скрипт , който прави тъмбнейли , примерно имаш входяща снимка с дължина 600 пиксела и височина 450 пиксела , ще я смали до толкова до колкото ти трябва и ще запази пропорционалноста ..

Ето как работи ..

PHP:
$newW = 450; // новата ти дължина 
$src = "putq do snimkata.jpg"; // самата снимка 
$dest = "pytq do nowata snimka"; // каде да запише новата снимка
make_thumb($src,$dest, $newW);

Малък съвет , препоръчвам ти $dest и $src да са еднакви , така ще я презапише , но ако мислиш ,че ще ти трябва и оригиналното изображение , но го прави .. :)
 

Горе