форум вебмастероff на AlfaSpace.NET

Ubuntu и Linux |реактивный бесплатный хостинг | Киноклуб. ВСЁ БЕСПЛАТНО!
база знаний хостинга | правила форума

  Начало ° Ответить ° Статистика ° Опрос ° Регистрация ° Поиск ° FAQ °
Форум вебмастеров на AlfaSpace.NET / The Matrix Has You / php уменьшение фотографии
Автор Сообщение
acsid
Alfa Guru

2388
# Дата: 7 Авг 2006 06:50 ° Поправил: acsid


как уменьшить фотографию с помощью пхп, но не её размеры а колличество места которое она занимает.
Допустим при загрузке она занимает 300 кб, как из 300 кб сделать допустим 40кб?

gl_SPICE
Участник

1719
# Дата: 7 Авг 2006 07:02


То есть, тебе качество надо уменьшить .
Смотри этот класс: http://phpclasses.b2emotion.com/browse/package/1980.html

acsid
Alfa Guru

2388
# Дата: 7 Авг 2006 07:05


gl_SPICE
ну да ты правильно понял

acsid
Alfa Guru

2388
# Дата: 7 Авг 2006 07:06 ° Поправил: acsid


gl_SPICE
ссылка битая
,а нет сорь ..блин непонимаю как там скачать... зарегался а оно всёравно не даёт..

acsid
Alfa Guru

2388
# Дата: 7 Авг 2006 07:35


сжимает , с 1.5 мб до 400кб только один проблем ..почемуто сохранение изменённого не происходит.. может кто-то знает почему?
 
<?php 
/** 
* JPEGReducer class version 1 
* 25 November 2004 
* reduce size of jpeg file on the fly 
* Author: huda m elmatsani 
* Email : justhuda ## netscape ## net 
* 
* Description: 
* Usually we reduce the size of jpeg file by changing the quality factor, 
* as provided by imagejpeg() function, but with this method we can not 
* produce the image with expected file size easyly. 
* JPEGReducer class can help us to reduce image size with easy 
* by setting file size as variable. 
* 
* sintax: 
* $im = new JPEGReducer(jpeg_file_path, expected_size); 
* 
* example 
* $im = new JPEGReducer("jakarta.jpg",15000); 
* $im->OutputImage(); 
* 
*/ 

Class JPEGReducer { 
     
    var $imgname; 
    var $imgsize; 
    var $orgsize; 
     
    function JPEGReducer($imgname,$imgsize) { 
        $this->imgname = $imgname; 
        $this->imgsize = $imgsize; 
        $this->orgsize = filesize($imgname); 
    } 
     
    function AcceptedSize() { 
        if($this->imgsize < $this->orgsize) return 1; 
        else return 0; 
    } 
    //courtesy vic at zymsys dot com 
    function LoadJpeg () { 
        $imgname = $this->imgname; 
         
        $im = @imagecreatefromjpeg ($imgname); /* Attempt to open */ 
        if (!$im) { /* See if it failed */ 
            $im  = imagecreate (150, 30); /* Create a blank image */ 
            $bgc = imagecolorallocate ($im, 255, 255, 255); 
            $tc  = imagecolorallocate ($im, 0, 0, 0); 
            imagefilledrectangle ($im, 0, 0, 150, 30, $bgc); 
            /* Output an errmsg */ 
            imagestring ($im, 1, 5, 5, "Error loading $imgname", $tc); 
        } 
        return $im; 
    } 
     
    function CalculateQFactor()  { 
         
        $im   = $this->LoadJpeg(); 
        $size = $this->imgsize; 
         
        //create sample data of 75%, 50%, and 25% quality 
        ob_start(); 
        imagejpeg($im,'',75); 
        $buff75 = ob_get_contents(); 
        ob_end_clean(); 
         
        ob_start(); 
        imagejpeg($im,'',50); 
        $buff50 = ob_get_contents(); 
        ob_end_clean(); 
         
        ob_start(); 
        imagejpeg($im,'',25); 
        $buff25 = ob_get_contents(); 
        ob_end_clean(); 
         
        //calculate size of each image 
        $size75 = strlen($buff75); 
        $size50 = strlen($buff50); 
        $size25 = strlen($buff25); 
         
        //calculate gradient of size reduction by quality 
        $mgrad1 = 25/($size50-$size25); 
        $mgrad2 = 25/($size75-$size50); 
        $mgrad3 = 50/($size75-$size25); 
        $mgrad  = ($mgrad1+$mgrad2+$mgrad3)/3; 
         
        //result of approx. quality factor for expected size 
        return round($mgrad*($size-$size50)+50); 
    } 
     
     
    function OutputImage() { 
         
        $im         = $this->LoadJpeg(); 
        header("Content-type: image/jpeg"); 
        if($this->AcceptedSize()){ 
            $Qfactor    = $this->CalculateQFactor(); 
            imagejpeg($im,'',$Qfactor); 
        } 
        else imagejpeg($im); 
         
         
    } 
     
    function SaveImage($imgname) { 
         
        $im         = $this->LoadJpeg(); 
        if($this->AcceptedSize()){ 
            $Qfactor    = $this->CalculateQFactor(); 
            imagejpeg($im,$imgname,$Qfactor); 
        } 
        else imagejpeg($im,$imgname); 
         
    } 
} 
?> 


acsid
Alfa Guru

2388
# Дата: 7 Авг 2006 07:41


всё разобрался супер класс рекомендую

Ваш ответ

Quote  Bold Style  Italic Style  Underlined Style  URL Link  Email Link  Script AutoTab  Preformatted Text  Отменить *Что это?
... Запретить смайлы


Перед отправкой "нелатинского" текста проверьте кодировку броузера!
 » Логин  » Пароль 
 
Powered by miniBB forum software © 2001-2008
Powered by miniBB-gzipper. Original size:27612, gzipped size:8703

Mp3 Download || Webs Studio™ || Song's Lyrics
eXTReMe Tracker Rambler's Top100 Рейтинг@Mail.ru Форум ТвойWeb [Valid RSS]