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

Форум PHP

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

 

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

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

тема: Превью фото
 
 автор: 1prom   (28.03.2008 в 01:20)   письмо автору
 
 

Здравствуйте!

Во время сохранения фото делаеться автоматом копия фото меньшего размера

Уже не помню в каком форуме или теме я спрашивал как сделать такое "чудо"
- мне ответили, что все копии уменшенных размеров фото нужно делать вручную.

Тут же натолкнулся на известный сайт vkontakte.ru/photos.php

Там копии фото с уменшенных размеров создаются автоматом

Как это сделать? скажите пожалуйста

Спасибо зарание

   
 
 автор: ONYX   (28.03.2008 в 09:12)   письмо автору
 
   для: 1prom   (28.03.2008 в 01:20)
 

Я вот так делал. В функцию отправляем имя файла, функция корректирует пропорциональность и сохраняет по указанным размерам. 500X500 и 70X70


<?
function correct_image($fname){
    if(!
file_exists('../photo/'.$fname))
        return 
false;
    
copy('../photo/'.$fname,'../tmp/'.$fname);
    
unlink('../photo/'.$fname);
    
$name explode('.',$fname);
    
$im=imagecreatefromjpeg("../tmp/".$fname);
    
$w imageSX($im);
    
$h imageSY($im);
    if(
$w<$h){
    
$new_w $h/500;
    
$new_w round($w/$new_w);
    
$new imagecreatetruecolor($new_w500);
    
imagecopyresampled($new$im,0,0,0,0,$new_w,500,$w,$h);
    }
    else
    {
    
$new_h $w/500;
    
$new_h round($h/$new_h);
    
$new imagecreatetruecolor(500,$new_h);
    
imagecopyresampled($new$im,0,0,0,0,500,$new_h,$w,$h);
    }
    
imagejpeg($new,'../photo/'.$name[0].'.jpg');
    
imageDestroy($new);
    if(
$w<$h){
    
$new_w $h/70;
    
$new_w round($w/$new_w);
    
$new imagecreatetruecolor($new_w70);
    
imagecopyresampled($new$im,0,0,0,0,$new_w,70,$w,$h);
    }
    else
    {
    
$new_h $w/70;
    
$new_h round($h/$new_h);
    
$new imagecreatetruecolor(70,$new_h);
    
imagecopyresampled($new$im,0,0,0,0,70,$new_h,$w,$h);
    }
    
imagejpeg($new,'../photo/'.$name[0].'_s.jpg');
    
imageDestroy($new);
    
imageDestroy($im);
    
unlink('../tmp/'.$fname);
}
?>

   
 
 автор: 1prom   (27.04.2008 в 18:16)   письмо автору
 
   для: ONYX   (28.03.2008 в 09:12)
 

Код этот прекрасно работает с фото JPG, а как быть с gif, bmp, img?

   
 
 автор: ddhvvn   (27.04.2008 в 20:00)   письмо автору
 
   для: 1prom   (27.04.2008 в 18:16)
 

Название функций imagecreatefromjpeg, imagejpeg Вам ни о чем не говорит?

   
 
 автор: 1prom   (27.04.2008 в 23:31)   письмо автору
 
   для: ddhvvn   (27.04.2008 в 20:00)
 

Бывают ли функции для изменения интересуемых меня файлов?

   
 
 автор: ddhvvn   (28.04.2008 в 13:52)   письмо автору
 
   для: 1prom   (27.04.2008 в 23:31)
 

ДА!!!
Только вместо BMP используйте WBMP

   
 
 автор: 1prom   (04.05.2008 в 17:50)   письмо автору
 
   для: ddhvvn   (28.04.2008 в 13:52)
 

Когда я вручную делал копии большого и маленького изображения с помощью MS picture manager - я нажимал на кнопочку автоподстройка и улутшались цвета рисунка, делалось изображение более ярким, если оно было снято плохо и т. п.

Кто знает можно ли такую "автоподстройку" делать с помощью кода (функции)?

   
 
 автор: devil943   (04.05.2008 в 21:42)   письмо автору
 
   для: 1prom   (04.05.2008 в 17:50)
 

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

   
 
 автор: Atheist   (04.05.2008 в 18:16)   письмо автору
 
   для: ddhvvn   (28.04.2008 в 13:52)
 

> Только вместо BMP используйте WBMP
WBMP - это другой формат.

   
 
 автор: devil943   (04.05.2008 в 21:43)   письмо автору
 
   для: Atheist   (04.05.2008 в 18:16)
 

Wbmp тоже точечный рисунок, не использует сжатия, так что разницы нет.

   
 
 автор: Atheist   (04.05.2008 в 21:59)   письмо автору
 
   для: devil943   (04.05.2008 в 21:43)
 

WBMP - формат, созданный консорциумом WAP FORUM (www.wapforum.org).

> так что разницы нет
Это чем-то подтверждено или пустословишь?..

   
 
 автор: devil943   (04.05.2008 в 22:03)   письмо автору
 
   для: Atheist   (04.05.2008 в 21:59)
 

Подтверждено тем, что об формата идут без сжатия и обра изображения - точечные. Возможно и mime у них одинаковый, наверняка не скажу.

   
 
 автор: Atheist   (04.05.2008 в 22:07)   письмо автору
 
   для: devil943   (04.05.2008 в 22:03)
 

MIME WBMP - image/vnd.wap.wbmp. BMP - image/bmp.

> что об формата идут без сжатия и обра изображения - точечные
И это говорит о том, что эти два формата - одно и то же?

   
 
 автор: devil943   (04.05.2008 в 22:25)   письмо автору
 
   для: Atheist   (04.05.2008 в 22:07)
 

Ладно вы меня убедили.

   
 
 автор: Maxam   (02.09.2008 в 15:57)   письмо автору
 
   для: ONYX   (28.03.2008 в 09:12)
 

А для работы кода на localhost нужны какие-то библиотеки? Если да: где взять, как поставить?

   
 
 автор: sim5   (02.09.2008 в 16:02)   письмо автору
 
   для: Maxam   (02.09.2008 в 15:57)
 

Нужна билиотека php_gd2.dll и подключение ее в php.ini.

   
Rambler's Top100
вверх

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