Форум dkLab и Denwer
Здесь общаются Web-разработчики.
Генеральный спонсор:
Хостинг «Джино»

HTTP_ImageResizer: загрузка и ресайз картинок "на лету" с кэшированием nginx (Дмитрий Котеров)
Author Message
Дмитрий Котеров
Администратор



Joined: 10 Mar 2003
Posts: 13665
Карма: 412
   поощрить/наказать


PostPosted: Mon May 10, 2010 9:57 pm (написано за 17 секунд)
   Post subject: HTTP_ImageResizer: загрузка и ресайз картинок "на лету" с кэшированием nginx
Reply with quote

dklab.ru/lib/HTTP_ImageResizer/

This library is used to load static image content from anywhere (e.g. from a
database, from remote storage etc.), resize it and return to browser. Fetching
and resizing is performed "on demand": images are resized when a request
arrives, but resized result is stored to nginx (or similar) cache, so there
is no performance bottleneck.
Back to top
View user's profile Send private message Send e-mail
Денис Рябов
Guest





Карма: 387
   поощрить/наказать


PostPosted: Sat Jun 05, 2010 9:02 pm (спустя 25 дней 23 часа 4 минуты; написано за 7 секунд)
   Post subject:
Reply with quote

Есть подозрение, что png-картинки с альфа-каналом будут неправильно обрабатываться (в том смысле, что прозрачность исчезнет).
Back to top
Денис Рябов
Guest





Карма: 387
   поощрить/наказать


PostPosted: Sat Jun 05, 2010 9:13 pm (спустя 10 минут; написано за 2 минуты 47 секунд)
   Post subject:
Reply with quote

По-идее, должно быть примерно так (если нужно оставлять прозрачность у png-превьюшек, а в некоторых случаях это действительно требуется):
Code (php): скопировать код в буфер обмена
                $format = isset (www.php.net/isset)($params['format'])? $params['format'] : 'png';
                $func = "image" . $format;

                if (strlen (www.php.net/strlen)(@$params['bg'])) {
                        $newIm = imagecreatetruecolor(max (www.php.net/max)($newW, $params['w']), max (www.php.net/max)($newH, $params['h']));
                        $rgb = sscanf (www.php.net/sscanf)(preg_replace (www.php.net/preg_replace)('/#/', '', $params['bg']), '%2x%2x%2x');
                        $color = imagecolorallocate($newIm, $rgb[0], $rgb[1], $rgb[2]);
                        imagefilledrectangle($newIm, 0, 0, imagesx($newIm) - 1, imagesy($newIm) - 1, $color);
                        $x = (imagesx($newIm) - $newW) / 2;
                        $y = (imagesy($newIm) - $newH) / 2;
                } else {
                        $newIm = imagecreatetruecolor($newW, $newH);
                        $x = $y = 0;
                        if($format=='png')
                        {
                                imagealphablending($newIm, false);
                                imagesavealpha($newIm, true);
                                $color =  imagecolortransparent($newIm, imagecolorallocatealpha($newIm, 0, 0, 0, 127));
                                imagefill($newIm, 0, 0, $color);
                        }
                }
Back to top
Display posts from previous:   
Post new topic   Reply to topic All times are GMT + 3 Hours
Page 1 of 1    Email to a Friend.
Post a reply
Username
Subject
Господа спамеры и оптимизаторы!

Вы можете даже и не пытаться вставлять в текст поста ссылки - они все равно автоматически удаляются (вернее, тэги <a> заменяются на тэги <u>).

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

Disable BBCode in this post
Disable Smilies in this post
    HTML is OFF
BBCode is ON
Smilies are ON
You cannot post new topics in this forum. You can reply to topics in this forum. You cannot edit your posts in this forum. You cannot delete your posts in this forum. You cannot vote in polls in this forum. You cannot attach files in this forum. You can download files in this forum.
XML