1 Востаннє редагувалося login (19.12.2012 15:47:22)

Тема: Lightbox2 max Width max Height

Поставив на сайт lightbox2 для галереї.
У мене така проблема. Розмір картинок набагато більше ніж розмір екрану мого ноутбука. Чи можна якось задати максимальне значення? Тобто вказати константи:

maxWidth = '1000px';
maxHeight = '1000px';

2

Re: Lightbox2 max Width max Height

Ось тут робив подібне:
http://luxsanteh.kiev.ua/index.php?p=gallery

хардкод правда =)

Lightbox.prototype.sizeContainer = function(imageWidth, imageHeight) {
    
      if (imageWidth > 750) {
          imageHeight = 750 / imageWidth * imageHeight;
          imageWidth = 750;
      }
      
      if (imageHeight > 750) {
          imageWidth = 750 / imageHeight * imageWidth;
          imageHeight = 750;
      }
Подякували: login1

3

Re: Lightbox2 max Width max Height

Ого, так швидко.
Працює, але трохи повільно відбувається ефект переключення.

4

Re: Lightbox2 max Width max Height

Картинки мабуть по 5мб? Думаю проблема саме в картинках. Їх потрібно наперед готувати вручну або використовуючи можливості сервера.

5

Re: Lightbox2 max Width max Height

Replace написав:

використовуючи можливості сервера

А це як? Бо фотографій дуже багато. Розмір ±3мб.

6

Re: Lightbox2 max Width max Height

Вам на Python потрібно? Якщо так, то створюйте окрему тему у відповідному розділі.

7

Re: Lightbox2 max Width max Height

У мене звичайний html сайт (статичний).

8

Re: Lightbox2 max Width max Height

Якщо є підтримка php та mod_rewrite, то можна так:

.htaccess:

RewriteEngine On
RewriteBase /
RewriteRule ^images\/(.*).jpg$ images.php?path=$1

images.php:

header("Content-Type: image/jpeg");
    header("Content-Length: " .(string)(filesize($path)));

    $base_path = 'images/';
    $path = $base_path . $_GET['path'] . '.jpg';
    
    $md5 = md5_file($path);
    
    if (!file_exists('cache/' . $md5 . '.jpg')) {
        list($width, $height) = getimagesize($path);
        $newwidth = 1000;
        $newheight = 1000;
        $thumb = imagecreatetruecolor($newwidth, $newheight);
        $source = imagecreatefromjpeg($path);
        imagecopyresized($thumb, $source, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);
        ob_start();
        imagejpeg($thumb);
        $data = ob_get_contents();
        ob_end_clean();
        file_put_contents('cache/' . $md5 . '.jpg', $data);
    }
    
    echo file_get_contents('cache/' . $md5 . '.jpg');

В папку cache будуть кидатись закешовані зображення. Над newwidth та newheight потрібно буде попрацювати.

P.S. Сподобалась задачка. Спеціально для вас написав :)

Подякували: login1

9

Re: Lightbox2 max Width max Height

Майже розібрався. Дякую!