Добро пожаловать! Это — архивная версия форумов на «Хакер.Ru». Она работает в режиме read-only.
 

Скрипт для сжатия изображения

Пользователи, просматривающие топик: none

Зашли как: Guest
Все форумы >> [Веб-программинг] >> Скрипт для сжатия изображения
Имя
Сообщение << Старые топики   Новые топики >>
Скрипт для сжатия изображения - 2007-03-27 19:15:31.756666   
Bios_inside

Сообщений: 626
Оценки: 0
Присоединился: 2007-02-23 10:44:18.170000
Нада скрипт для сжатия картинок. У меня есть в папке 300 картинок, хочу сжать их до розмеров аватары. Скачал скрипт галереи, думал по 1 сжимать (типа загружая фотки в галерею но на своем апаче), но понял, что это сильно долго.
Есть какой-то простой и удобный способ сжать 300 фоток до розмеров аватары не вручную?
Если ни на РНР, то может прога какая есть???
Post #: 1
RE: Скрипт для сжатия изображения - 2007-03-27 20:00:29.726666   
GROB_T

Сообщений: 349
Оценки: 0
Присоединился: 2007-01-05 02:54:27.330000
у меня есть одна идея, только не знаю насчет быстродействия, но тебе не надо будет ничего делать, можно написать прогу, которая откроет в paint-е по очереде раждую картинку, потом сменит размеры картинки, сохранит и приступит к следующей картинке. Только я не говорю, что прогу легко написать будтет, но вот пользоваться ей будет очень просто:)
Post #: 2
RE: Скрипт для сжатия изображения - 2007-03-27 20:17:42.630000   
Bios_inside

Сообщений: 626
Оценки: 0
Присоединился: 2007-02-23 10:44:18.170000
слушай, ты прям пророк могамет, такие перлы выдаёщ:D:DЯ бы сам не догадался, что можна такую прогу написать:D:D:DЯ думал ваще програмы писать нельзя:D:D:DИ такое багатое описание програмы, и скрипт такой красивый и интерфейс описан, я не осмелюсь украсть у тебя авторские права:D:D:D  Пипол, можна поконкретней????
Post #: 3
RE: Скрипт для сжатия изображения - 2007-03-27 20:43:51.900000   
GROB_T

Сообщений: 349
Оценки: 0
Присоединился: 2007-01-05 02:54:27.330000
по-моему это все несложно делается на vbs, действия проги можно расписать по действиям, прога должна основываться на отправке нажатий клавиш
1)запускает paint
2)открывает картинку в паинте через меню
3)переходит в настройку изображения и меняет размеры картинки на нужные
4)сохраняет картинку
надеюсь теперь понятно, если хочешь, могу попытаться сделать
Post #: 4
RE: Скрипт для сжатия изображения - 2007-03-27 21:43:15.180000   
GROB_T

Сообщений: 349
Оценки: 0
Присоединился: 2007-01-05 02:54:27.330000
Bios_inside, сделал прогу, вот скрипт:

set s=createobject("wscript.shell")
s.run"mspaint"
i=1
while i<10'количество картинок
wscript.sleep 500
s.sendkeys"{f10}{down 2}{enter}{tab 5}{right 2}{down 6}{enter}{tab 2}"
execute("s.sendkeys""{down "&i&"}""")
s.sendkeys"{enter}{f10}{right 3}{down 2}{enter}"
s.sendkeys"100"'между кавычками надо указать процент масштабирования по горизонтали
s.sendkeys"{tab}"
s.sendkeys"100"'между кавычками надо указать процент масштабирования по вертикали
s.sendkeys"{enter}{f10}{down 3}{enter}"
i=i+1
wend

это все надо сохранить с расширением .vbs и не забыть указать настройки, в папке мои рисунки все снести, потом в папку мои рисунки скопировать все твои фотки, запустить прогу и НИЧЕГО на компе не делать, жди пока прога закончит свою работу, после завершения работы проги в папке мои рисунки все картинки будут переделаны в том масштабе, который ты указал в скрипте
Post #: 5
RE: Скрипт для сжатия изображения - 2007-03-28 00:05:38.760000   
Bios_inside

Сообщений: 626
Оценки: 0
Присоединился: 2007-02-23 10:44:18.170000
хекер.ру глючит
Post #: 6
RE: Скрипт для сжатия изображения - 2007-03-28 00:07:24.900000   
Bios_inside

Сообщений: 626
Оценки: 0
Присоединился: 2007-02-23 10:44:18.170000
quote:

s.sendkeys"100"'между кавычками надо указать процент масштабирования по горизонтали
Я не знаю процент маштабирования. Я знаю лиш что должно получится - 100 на 100 пикселей, а картинки есть разные - по 2 метра, по 20 кб.Не всё так просто ещё и потому, что картинки не стандартных размеров, а мне надо, что бы исходный материал был одного размера 100 на 100, потому нужно что бы был своего рода Бек граунд. Вот как в примере

Post #: 7
RE: Скрипт для сжатия изображения - 2007-03-28 00:23:21.943333   
GROB_T

Сообщений: 349
Оценки: 0
Присоединился: 2007-01-05 02:54:27.330000
Впринципе то, что тебе надо, можно делать не паинтом, фотошопом, только тебе придется разделить фотки на две группы, 1-ая те у которых ширина больше высоты, вторая наоборот, и тогда надо уже два скрипта, по одному для каждого типа фоток
Post #: 8
RE: Скрипт для сжатия изображения - 2007-03-28 06:35:49.203333   
Lex_Voodoo

Сообщений: 7328
Оценки: 0
Присоединился: 2004-12-07 13:55:12
В ACDSee есть возможность пакетного ресайза картинок. 
Post #: 9
RE: Скрипт для сжатия изображения - 2007-03-28 06:38:48.613333   
Net_FOX

Сообщений: 126
Оценки: 0
Присоединился: 2005-01-24 16:25:37
Я тут уже гдето уже отписывался по данному вопросу, чуть попоже еще раз выложу скрипт, небольшая модификация уже готового скрипта, ты просто указываешь какие необходимы размеры и качество изображения и он тебе выводить твое изображение в нужных тебе размерах, и при этом сама картинка остается нормальной!
Post #: 10
RE: Скрипт для сжатия изображения - 2007-03-28 08:55:58.483333   
Net_FOX

Сообщений: 126
Оценки: 0
Присоединился: 2005-01-24 16:25:37
Как и обещал выкладываю код:

&lt;?php if (!mysql_connect(dbHost, dbUser, dbPass)) { &nbsp;&nbsp;&nbsp; error_reporting(0); &nbsp;&nbsp;&nbsp; die ("Нет связи с сервером. Попробуйте позднее..."); } if (!mysql_select_db(dbName)) { &nbsp;&nbsp;&nbsp; error_reporting(0); &nbsp;&nbsp;&nbsp; die ("Нет связи с базой данных. Попробуйте позднее..."); } if (isset($smal)){ &nbsp;&nbsp;&nbsp; $sql&nbsp;&nbsp;&nbsp; =&nbsp;&nbsp;&nbsp; mysql_query("SELECT src_smal, base_smal FROM foto WHERE id='".$smal."'"); &nbsp;&nbsp;&nbsp; $res&nbsp;&nbsp;&nbsp; =&nbsp;&nbsp;&nbsp; mysql_fetch_array($sql); &nbsp;&nbsp;&nbsp; $fname&nbsp;&nbsp;&nbsp; =&nbsp;&nbsp;&nbsp; $res['base_smal'].$res['src_smal']; } if (isset($full)){ &nbsp;&nbsp;&nbsp; $sql&nbsp;&nbsp;&nbsp; =&nbsp;&nbsp;&nbsp; mysql_query("SELECT src_normal, base FROM foto WHERE id='".$full."'"); &nbsp;&nbsp;&nbsp; $res&nbsp;&nbsp;&nbsp; =&nbsp;&nbsp;&nbsp; mysql_fetch_array($sql); &nbsp;&nbsp;&nbsp; $fname&nbsp;&nbsp;&nbsp; =&nbsp;&nbsp;&nbsp; $res['base'].$res['src_normal']; &nbsp;&nbsp;&nbsp; if (isset($all)){ &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; $all = getimagesize($fname); &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; $w = $all[0]; &nbsp;&nbsp;&nbsp; } } //print $fname; // f - имя файла // w - требуемая ширина картинки // q - качество сжатия jpeg // s - выводить ли надпись // t - формат: 0 - без изменения, 1 - пропорциональный, 2 - квадратный кусок //if (!isset($fname)) exit;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // имя файла изображения if (!isset($t)) $t = 1;&nbsp;&nbsp;&nbsp; // формат по умолчанию пропорциональный if (!isset($s)) $s = 1;&nbsp;&nbsp;&nbsp; // вывод строчки на картинке по умолчанию включён if (!isset($q)) $q = 90;&nbsp;&nbsp; // качество jpeg по умолчанию if (!isset($w)) $w = 100;&nbsp; // ширина картинки по умолчанию list($width, $height, $type, $attr) = @getimagesize($fname); if (!$type) $type = 3; //------------------------------- // // вывод без изменения // применяем в случае, если нужно // только нанести надпись // //------------------------------- if (($t == 0)&amp;&amp;(file_exists($fname))) { &nbsp;switch ($type) &nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp; case 1: header("Content-type: image/gif"); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $dest = imagecreatefromgif($fname) or die ("Cannot Initialize new GD image stream"); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; break; &nbsp;&nbsp;&nbsp;&nbsp; case 2: header("Content-type: image/jpeg"); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $dest = imagecreatefromjpeg($fname) or die ("Cannot Initialize new GD image stream"); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; break; &nbsp;&nbsp;&nbsp;&nbsp; case 3: header("Content-type: image/png"); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $dest = imagecreatefrompng($fname) or die ("Cannot Initialize new GD image stream"); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; break; &nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // не наносим надпись &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (!$s) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; { &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; @readfile($fname); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; exit; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $str = "Тут копирайты которые будут установленны на изображении"; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // определяем координаты вывода текста &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $w_dest = imagesx($dest); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $h_dest = imagesy($dest); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $x_text = $w_dest-70; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $y_text = $h_dest-15; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // определяем каким цветом на каком фоне выводить текст &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $white = imagecolorallocate($dest, 255, 255, 255); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $black = imagecolorallocate($dest, 0, 0, 0); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // выводим текст &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if ($s) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; { &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; imagestring($dest, 2, $x_text-1, $y_text-1, $str,$black); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; imagestring($dest, 2, $x_text+1, $y_text+1, $str,$black); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; imagestring($dest, 2, $x_text+1, $y_text-1, $str,$black); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; imagestring($dest, 2, $x_text-1, $y_text+1, $str,$black); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; imagestring($dest, 2, $x_text-1, $y_text,&nbsp;&nbsp; $str,$black); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; imagestring($dest, 2, $x_text+1, $y_text,&nbsp;&nbsp; $str,$black); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; imagestring($dest, 2, $x_text,&nbsp;&nbsp; $y_text-1, $str,$black); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; imagestring($dest, 2, $x_text,&nbsp;&nbsp; $y_text+1, $str,$black); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; imagestring($dest, 2, $x_text,&nbsp;&nbsp; $y_text,&nbsp;&nbsp; $str,$white); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; @imagegammacorrect($dest, 1, 1.1); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; @imageinterlace($dest, 1); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // выводим картинку в одном из трёх форматов &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; switch ($type) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; { &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case 1: imagegif($dest); break; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case 2: imagejpeg($dest,'',$q); break; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case 3: imagepng($dest); break; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; imagedestroy($dest); &nbsp;exit; } // файл не найден, выводим заглушку else if (($t == 0)&amp;&amp;(!file_exists($fname))) { &nbsp;header("Content-type: image/png"); &nbsp;$src = @imagecreatefrompng("news/images/imgerr.png") or die ("Cannot Initialize new GD image stream"); &nbsp;imagepng($src); &nbsp;exit; } //-------------------------------------------- // // МАСШТАБИРОВАНИЕ // создаём исходное изображение на основе // исходного файла и опеределяем его размеры // //-------------------------------------------- if (!file_exists($fname)) { $src = @imagecreatefrompng("resize_error.png") or die ("Cannot Initialize new GD image stream"); $s = 0; } else { &nbsp;switch ($type) &nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp; case 1: header("Content-type: image/gif"); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $src = imagecreatefromgif($fname) or die ("Cannot Initialize new GD image stream"); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; break; &nbsp;&nbsp;&nbsp;&nbsp; case 2: header("Content-type: image/jpeg"); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $src = imagecreatefromjpeg($fname) or die ("Cannot Initialize new GD image stream"); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; break; &nbsp;&nbsp;&nbsp;&nbsp; case 3: header("Content-type: image/png"); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $src = imagecreatefrompng($fname) or die ("Cannot Initialize new GD image stream"); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; break; &nbsp;} } $w_src = imagesx($src); $h_src = imagesy($src); if ($t == 1)&nbsp;&nbsp; // операции для получения прямоугольного файла { &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $ratio = $w_src/$w; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $w_dest = round($w_src/$ratio); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $h_dest = round($h_src/$ratio); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // создаём пустую картинку &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // важно именно truecolor!, иначе будум иметь 8-битный результат &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $dest = @imagecreatetruecolor($w_dest,$h_dest) or die("Cannot Initialize new GD image stream"); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $white = imagecolorallocate($dest, 255, 255, 255); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; imagefill($dest,1,1,$white); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; imagecopyresampled($dest, $src, 0, 0, 0, 0, $w_dest, $h_dest, $w_src, $h_src); } if ($t == 2)&nbsp;&nbsp; // операции для получения квадратного файла { &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // создаём пустую квадратную картинку &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // важно именно truecolor!, иначе будум иметь 8-битный результат &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $dest = @imagecreatetruecolor($w,$w) or die("Cannot Initialize new GD image stream"); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // вырезаем квадратную серединку по x, если фото горизонтальное &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if ($w_src &gt; $h_src) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; imagecopyresampled($dest, $src, 0, 0, round((max($w_src,$h_src)-min($w_src,$h_src))/2), 0, $w, $w, min($w_src,$h_src), min($w_src,$h_src)); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // вырезаем квадратную верхушку по y, &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // если фото вертикальное (хотя можно тоже середику) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if ($w_src &lt; $h_src) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; imagecopyresampled($dest, $src, 0, 0, 0, 0, $w, $w, min($w_src,$h_src), min($w_src,$h_src)); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // квадратная картинка масштабируется без вырезок &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if ($w_src == $h_src) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; imagecopyresampled($dest, $src, 0, 0, 0, 0, $w, $w, $w_src, $w_src); } if ($s == 1)&nbsp;&nbsp; // нужна ли надпись { &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $str = "Тут копирайты которые будут установленны на изображении"; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // определяем координаты вывода текста &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $x_text = $w_dest-70; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $y_text = $h_dest-15; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // определяем каким цветом на каком фоне выводить текст &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $white = imagecolorallocate($dest, 255, 255, 255); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $black = imagecolorallocate($dest, 0, 0, 0); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // выводим текст &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; imagestring($dest, 2, $x_text-1, $y_text-1, $str,$black); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; imagestring($dest, 2, $x_text+1, $y_text+1, $str,$black); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; imagestring($dest, 2, $x_text+1, $y_text-1, $str,$black); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; imagestring($dest, 2, $x_text-1, $y_text+1, $str,$black); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; imagestring($dest, 2, $x_text-1, $y_text,&nbsp;&nbsp; $str,$black); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; imagestring($dest, 2, $x_text+1, $y_text,&nbsp;&nbsp; $str,$black); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; imagestring($dest, 2, $x_text,&nbsp;&nbsp; $y_text-1, $str,$black); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; imagestring($dest, 2, $x_text,&nbsp;&nbsp; $y_text+1, $str,$black); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; imagestring($dest, 2, $x_text,&nbsp;&nbsp; $y_text,&nbsp;&nbsp; $str,$white); } if (!file_exists($fname)) { &nbsp;header("Content-type: image/png"); &nbsp;$black = imagecolorallocate($dest, 0, 0, 0); &nbsp;imagerectangle($dest,0,0,$w-1,$w-1,$black); &nbsp;imagepng($dest); &nbsp;exit; } @imagegammacorrect($dest, 1, 1.1); @imageinterlace($dest, 1); &nbsp;switch ($type) &nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp; case 1: imagegif($dest); break; &nbsp;&nbsp;&nbsp;&nbsp; case 2: imagejpeg($dest,'',$q); break; &nbsp;&nbsp;&nbsp;&nbsp; case 3: imagepng($dest); break; &nbsp;} imagedestroy($dest); imagedestroy($src); ?&gt;
Post #: 11
Страниц:  [1]
Все форумы >> [Веб-программинг] >> Скрипт для сжатия изображения







Связаться:
Вопросы по сайту / xakep@glc.ru

Предупреждение: использование полученных знаний в противозаконных целях преследуется по закону.