Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: улучшить качество уменьшаемых фоток
 
 автор: M0RE   (16.03.2009 в 09:55)   письмо автору
 
 

вот какие дела - юзер загружает на сайт фото, а скрипт уменьшает их.
проблема - уменьшенные фотки ужасного качества.
задача - максимально улучшить качество уменьшенных фото (в т.ч. самых маленьких)...

что есть :

<?php
if (file_exists($_FILES['imagefoto']["tmp_name"]))
{
if ($userprava==3) $togetuser=$_GET['selectedusername'];
if ($userprava==1) $togetuser=$_COOKIE['login'];

if (!is_dir("img/fotos/".$togetuser)) !mkdir("img/fotos/".$togetuser, 0700);
if (!is_dir("img/fotos/".$togetuser."/!thumbs")) !mkdir("img/fotos/".$togetuser."/!thumbs", 0700);
if (!is_dir("img/fotos/".$togetuser."/!smal")) !mkdir("img/fotos/".$togetuser."/!smal", 0700);

$startimagecount=scandir("img/fotos/".$togetuser."/");
$startimagecount=count($startimagecount)-3;
$imgfilename="img/fotos/".$togetuser."/".$_POST['imgnum_ank'].".jpg";
$imgfilenamethumb="img/fotos/".$togetuser."/!thumbs/".$_POST['imgnum_ank'].".jpg";

copy($_FILES['imagefoto']["tmp_name"], $imgfilename);
// размеры маленьких картинок
$widthlittle=150;
$heigthlittle=112;

$t=getimagesize ($imgfilename) or die('Unknown type of image');
$with=$t[0];$height=$t[1];
if ($with>$height)
{
if ($with>640)
{
$rwith=640; $rheight=$rwith*($height/$with);
$widthlittle=150; $heigthlittle=$widthlittle*($height/$with);
}
else
{
$rwith=$with;
$rheight=$height;
$widthlittle=150; $heigthlittle=$widthlittle*($height/$with);
}
$img=imagecreatefromjpeg($imgfilename);
$thumb=imagecreatetruecolor($rwith,$rheight);
$thumblittle=imagecreatetruecolor($widthlittle,$heigthlittle);
$imglogo=imagecreatefrompng("img/imagelogo.png");
imagecopyresized($thumb,$img,0,0,0,0,$rwith,$rheight,$with,$height);
imagecopyresized($thumblittle,$img,0,0,0,0,$widthlittle,$heigthlittle,$with,$height);
imagecopy($thumb,$imglogo,5,$rheight-45,0,0,200,37);
}
else
{
if ($height>480)
{
$rheight=480; $rwith=$rheight/($height/$with);
$heigthlittle=112; $widthlittle=$heigthlittle/($height/$with);
}
else
{
$rwith=$with; $rheight=$height;
$heigthlittle=112; $widthlittle=$heigthlittle/($height/$with);
}

$img=imagecreatefromjpeg($imgfilename);
$thumb=imagecreatetruecolor($rwith,$rheight);
$thumblittle=imagecreatetruecolor($widthlittle,$heigthlittle);
$imglogo=imagecreatefrompng("img/imagelogo.png");
imagecopyresized($thumb,$img,0,0,0,0,$rwith,$rheight,$with,$height);
imagecopyresized($thumblittle,$img,0,0,0,0,$widthlittle,$heigthlittle,$with,$height);
imagecopy($thumb,$imglogo,5,$rheight-45,0,0,200,37);
}

imagejpeg($thumb, $imgfilename, 80);
imagejpeg($thumblittle, $imgfilenamethumb, 95);
}

?>

просьба ответить понятно, я совсем не копенгаген))
спасибо!

  Ответить  
 
 автор: sim5   (16.03.2009 в 11:05)   письмо автору
 
   для: M0RE   (16.03.2009 в 09:55)
 

imagejpeg($thumb, $imgfilename, 100);

  Ответить  
 
 автор: Loki   (16.03.2009 в 11:08)   письмо автору
 
   для: sim5   (16.03.2009 в 11:05)
 

Это только качество сжатия. Качество ресайза все равно остается хреновым. Еще можно попробовать немного повысить резкость через image_filter, но он присутствует, насколько я помню, только в самых свежих версиях.

  Ответить  
 
 автор: sim5   (16.03.2009 в 11:09)   письмо автору
 
   для: Loki   (16.03.2009 в 11:08)
 

И ежу понятно.... Тут все оносительно - что значит "качество".

  Ответить  
 
 автор: M0RE   (16.03.2009 в 15:16)   письмо автору
 
   для: sim5   (16.03.2009 в 11:09)
 

спасибо, кто откликнулся.
пробовал 100. объем вырастает в разы, а толку чуть.
"качество" - ну это чтобы та фоточка смотрелась не хуже оригинала. ну, по крайней мере, не резко не бросалось плохое качество. а то даже глаза пропадают - или дыры или щелки...((
что-то я слышал, что можно несколько раз уменьшать по 5% (с повышенной нагрузкой на сервак).... есть такой скрипт или что там?

  Ответить  
 
 автор: sim5   (16.03.2009 в 15:23)   письмо автору
 
   для: M0RE   (16.03.2009 в 15:16)
 

Вы сами подумайте - если оригинал 1800хбог знает на сколько, и уменьшив его до 50х50, можно ли получить качество как оригинала?

  Ответить  
 
 автор: M0RE   (16.03.2009 в 15:28)   письмо автору
 
   для: sim5   (16.03.2009 в 15:23)
 

я уже думал - бесполезно... а в чем дело? вот если бы наоборот - из маленькой - в большую, я бы сказал: нет, не получится!

вот как вариант, навскидку (не смейтесь плиз) - а если конвертировать как-то скриптом в несжимаемый формат, уменьшить, а уж потом - опять в jpg .... а?

  Ответить  
 
 автор: sim5   (16.03.2009 в 15:31)   письмо автору
 
   для: M0RE   (16.03.2009 в 15:28)
 

А из большой в маленькую значит должно получиться? Откройте фотошоп, например, и тренируйтесь в уменшениях, а масштабируя после таких операций результат до максимального увеличиения, я думаю, вы поймете "а в чем дело?".

  Ответить  
 
 автор: M0RE   (16.03.2009 в 15:18)   письмо автору
 
   для: Loki   (16.03.2009 в 11:08)
 

самых свежих версиях чего? может, их есть у меня?

  Ответить  
 
 автор: Loki   (16.03.2009 в 15:46)   письмо автору
 
   для: M0RE   (16.03.2009 в 15:18)
 

php и gdlib
проверьте, может и есть
http://ru2.php.net/imagefilter

  Ответить  
 
 автор: M0RE   (16.03.2009 в 15:51)   письмо автору
 
   для: Loki   (16.03.2009 в 15:46)
 

я посмотрел, ничего не понимаю(
плиз, напишите словами и цифрами, а я щас гляну в хост и скажу, что там есть..

есть:
Версия PHP 5.2.8

это то?

  Ответить  
 
 автор: amigo63   (16.03.2009 в 16:28)   письмо автору
 
   для: M0RE   (16.03.2009 в 15:51)
 

Не совсем;) Найдите в phpinfo строчку GD Version - вот это - то :)

  Ответить  
 
 автор: M0RE   (16.03.2009 в 16:39)   письмо автору
 
   для: amigo63   (16.03.2009 в 16:28)
 

не могу найти.. где это должно быть обычно?


Системный PHP Extension(s) and Application(s)
Установлен PHP Extension(s) and Application(s)
Установлен Версия Действия
Archive_Tar 1.3.2 Показать документы
Console_Getopt 1.2.3 Показать документы
DB 1.7.13 Показать документы
DB_DataObject 1.8.8 Показать документы
Date 1.4.7 Показать документы
Mail 1.1.14 Показать документы
Net_SMTP 1.3.2 Показать документы
Net_Socket 1.0.9 Показать документы
PEAR 1.7.2 Показать документы
Structures_Graph 1.0.2 Показать документы
Validate 0.8.1 Показать документы
XML_RPC 1.5.1 Показать документы


PHP Configuration

Эти параметры конфигурации PHP могут быть настроены администратором сервера. Они приведены только для справки.

Sub Section Directive Info &#9662; Value
Language Options safe_mode Off
Language Options asp_tags Allow ASP-style <% %> tags. Off
File Uploads upload_max_filesize Maximum allowed size for uploaded files. 2M
Resource Limits memory_limit Maximum amount of memory a script may consume (32MB) 32M
Resource Limits max_input_time Maximum amount of time each script may spend parsing request data 60
Resource Limits max_execution_time Maximum execution time of each script, in seconds 30
File Uploads file_uploads Whether to allow HTTP file uploads. On
Paths and Directories include_path Windows: "\path1;\path2" c:\php\includes" .:/usr/lib/php:/usr/local/lib/php
Data Handling register_globals You should do your best to write your scripts so that they do not require register_globals to be on; Using form variables as globals can easily lead to possible security problems, if the code is not very well thought of. Off

  Ответить  
 
 автор: Loki   (16.03.2009 в 16:28)   письмо автору
 
   для: M0RE   (16.03.2009 в 15:51)
 

если функция imagefilter присутствует, значит то.

  Ответить  
 
 автор: M0RE   (16.03.2009 в 17:01)   письмо автору
 
   для: Loki   (16.03.2009 в 16:28)
 

>если функция imagefilter присутствует, значит то.
не нашел.
есть:
PHP Extension(s) and Application(s) Доступно для установки:
но там тоже нет.
а можно мы будем считать что там есть такое. что дальше в этом случае?

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования