powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Помогите разобраться с функцией ресайза изображений
5 сообщений из 5, страница 1 из 1
Помогите разобраться с функцией ресайза изображений
    #37928125
Pelsh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Имеем вот такую функцию

Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
			$valid_formats = array("jpg", "png", "gif", "bmp","JPG");
			$name1 = $_FILES[$id1]['name'];
			$size1 = $_FILES[$id1]['size'];
			$name2 = $_FILES[$id2]['name'];
			$size2 = $_FILES[$id2]['size'];
			$name3 = $_FILES[$id3]['name'];
			$size3 = $_FILES[$id3]['size'];
			
			
			if(strlen($name1))
				{
					list($txt, $ext) = explode(".", $name1);
					if(in_array($ext,$valid_formats))
					{
					if($size1<(2*1024*1024))
						{
							if($img_name1!="")
							{
							$actual_image_name = $img_name1;
							}
							else
							{
								$actual_image_name = time().substr(str_replace(" ", "_", $txt), 5)."1".".".$ext;
							}
							
							
							$tmp = $_FILES[$id1]['tmp_name'];
							if(move_uploaded_file($tmp, $path.$actual_image_name))
								{
								$realpath="$path$actual_image_name"; 
								$small = "$path_small$actual_image_name";
								$size_img =getimagesize("$realpath");
						
								 $width = $size_img[0];
								 $height = $size_img[1];
								 $w=1;
								 $h=1;
								  $kl = 1;
								 if($width>$height)
								 {
								 $k = $height;
								 }
								 else
								 $k = $width;
								 $s = $k/120;
								 $t = 150/$s;
								 
								 
								 
								 
								 if($width>120 || $height>120 )
								 {
								  resize($realpath,$small,$t,$t,true);
								  $width=$width*(1/$s);
								  $height = $height*(1/$s);
								  $kl = 0;
								 }
								if($width>120)
								{
									 $w=  $width-120;	
									 $kl = 0;
								}
								if($height>120)
								{
									 $h =  $height-120;	
									 $kl = 0;
									 							 
								}
								
								
								if($kl == 0)
									crop($small,$small,array($w/2,$h/2,-$w/2,-$h/2));
								else
									crop($realpath,$small,array($w/2,$h/2,-$w/2,-$h/2));
							
							
							$con->execute("Update product set img1 = '".$actual_image_name."' where ID = '".$val."'");
								//***insert into table ****////
									
									echo "<img src='upload_small/".$actual_image_name."'  class='preview'>";
								}
							else
								echo "failed";
						}
						else
						echo "Image file size max 1 MB";					
						}
						else
						echo "Invalid file format..";	
				}




На выходе получаем ресайзовые фотки 120х120. Как мне подправить функцию чтобы на выходе было 250х250
...
Рейтинг: 0 / 0
Помогите разобраться с функцией ресайза изображений
    #37928138
Pelsh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я так понял, что цифры надо менять тут:
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
								 if($width>$height)
								 {
								 $k = $height;
								 }
								 else
								 $k = $width;
								 $s = $k/120;
								 $t = 150/$s;


Однако мне не ясно что на что в этом месте делят и зачем??
Господа знатоки, помогите!
...
Рейтинг: 0 / 0
Помогите разобраться с функцией ресайза изображений
    #37928328
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Pelsh,

Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
/*
$dir - путь к картинке
$name - имя картинки
$width - ширина картинки (preview)
$height - высота картинки (preview)
$left - выравнивание (-1 : по левому краю, 0 : по центру, 1 : по правому краю)    вроде так :)
$top - выравнивание (-1 : по верхнему краю, 0 : по центру, 1 : по нижнему краю)    вроде так :)
$cut - соблюдать пропорции (true|false)
*/
function resize_image($dir, $name, $width, $height, $left=0, $top=0, $cut = true){
	if ($width==0) $width=120;
	if ($height==0) $height=120;
	$mime=getimagesize($dir.$name);
	if ($mime) {
		$mime=$mime["mime"];
		switch($mime){
			case "image/png":
				$src=@imagecreatefrompng($dir.$name);
				break;
			case "image/jpeg":
				$src=@imagecreatefromjpeg($dir.$name);
				break;
			case "image/wbmp":
				$src=@imagecreatefromwbmp($dir.$name);
				break;
			case "image/gif":
				$src=@imagecreatefromgif($dir.$name);
				break;
		}
	}
	$w=imagesx($src);
	$h=imagesy($src);
	if ($cut){
		if ($width/$height>$w/$h){
			$newwidth=$width;
			$newheight=round($newwidth/$w*$h);
			$top=round(($height-$newheight)/2*(1+$top));
			$left=0;
		}else{
			$newheight=$height;
			$newwidth=round($newheight/$h*$w);
			$left=round(($width-$newwidth)/2*(1+$left));
			$top=0;
		}
		$res=imagecreatetruecolor($width, $height);
	    if (($w==$newwidth) && ($h==$newheight)){
	    	imagecopy($res, $src, 0, 0, 0, 0, $w, $h);
	    }
	    else{
			imagecopyresampled($res, $src, $left, $top, 0, 0, $newwidth, $newheight, $w, $h);
		}
	}else{
		if ($width/$height<$w/$h){
			$newwidth=$width;
			$newheight=round($newwidth/$w*$h);
		}else{
			$newheight=$height;
			$newwidth=round($newheight/$h*$w);
		}
		$res=imagecreatetruecolor($newwidth, $newheight);
	    if (($w==$newwidth) && ($h==$newheight)){
	    	imagecopy($res, $src, 0, 0, 0, 0, $w, $h);
	    }
	    else{
			imagecopyresampled($res, $src, 0, 0, 0, 0, $newwidth, $newheight, $w, $h);
		}
	}
	//imagepng($src);
	//return $res;

	$mime=getimagesize($dir.$name);
	if ($mime) {
		$mime=$mime["mime"];
		switch($mime){
			case "image/png":
				imagepng($res, $dir."thumbs"."/".$name);
				break;
			case "image/jpeg":
				imagejpeg($res, $dir."thumbs"."/".$name);
				break;
			case "image/wbmp":
				imagewbmp($res, $dir."thumbs"."/".$name);
				break;
			case "image/gif":
				imagegif($res, $dir."thumbs"."/".$name);
				break;
		}
	}
	
}



писал давно... смахивает даже немного на говнокод (и ресурсов жрёт кучу), но зато вникать не надо. картинки сохраняются в подпапку thumbs (предварительно надо создать)
...
Рейтинг: 0 / 0
Помогите разобраться с функцией ресайза изображений
    #37928357
Pelsh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я боюсь менять что-то в уже существующей админке, т.к. она тоже написана говнокодом - по этому прошу помощи как изменить уже существующий код! Помогите люди дорогие! Готом материально компенсировать ваше время! Очень нужно!
...
Рейтинг: 0 / 0
Помогите разобраться с функцией ресайза изображений
    #37928669
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тупо 120 заменить на 250 не?
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Помогите разобраться с функцией ресайза изображений
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]