|
|
|
| Здравствуйте!
использую lightbox, но у него есть маленькое условие нормальной работы - у превьюшки должны быть указаны width и height, но так как использую базу данных превьюшки динамически изменяються в файле уменьшения картинок(imgresize.php).
за нужные мне размеры в файле уменьшения картинок отвечают переменные $w и $h в функции resizeimg.
Вопрос: как мне эти переменные использовать на странице вывода картинок? Так как сейчас скрипт их "не видит" несмотря на подключения к странице файла уменьшения картинок.
привожу вывод картинок:
<a href='".$pa['img']."' rel=lightbox[example] class=bordered /> <img src=\"imgresize.php?img=".$pa['img']."\" width=".$w." height=".$h." alt=\"".$pa["img_description"]."\" ></a>
|
| |
|
|
|
|
|
|
|
для: ronin
(18.08.2008 в 12:27)
| | В этом коде нет ни $w ни $h.
То, что они есть в какой-то функции (вызванной к тому же при обработке другого http-запроса), в общем случае ни к чему php не обязывает. | |
|
|
|
|
|
|
|
для: Trianon
(18.08.2008 в 12:34)
| | я согласен и не жалуюсь на php:)
все дело в том, что сама превьюшка создаеться! просто эти переменные($w $h.) мне нужно перекинуть в width=".$w." height=".$h." также как перкидывается без проблем картинка (<img src=\"imgresize.php?img=".$pa['img']."\")
код в (imgresize.php):
imagecopyresampled($dest_img, $src_img, 0, 0, 0, 0, $w, $h, $size_img[0], $size_img[1]);
|
| |
|
|
|
|
|
|
|
для: ronin
(18.08.2008 в 12:50)
| | Только не надо выдумывать, что Lightbox требует от вас размеров изображений, которые он будет выводить как эффекты. И не надо ничего перекидывать, в скрипте изменения размеров все можно узнать. | |
|
|
|
|
|
|
|
для: sim5
(18.08.2008 в 12:54)
| | я потому прошу помощи, что не могу перекинуть данные. А на счет lightbox, может я что не так делаю, но у меня если не указать width и height превьюшки, скрипт то работает - то нет. | |
|
|
|
|
|
|
|
для: ronin
(18.08.2008 в 13:03)
| | Указание размеров картинкам, это не требование lightbox (оригинальные размеры картинок, которые он будет выводить, он узнает сам), а разумная рекомендация, которую следует соблюдать, чтобы не заставлять браузер исполнять ненужную работу.
Если картинок много, я бы вообще не делал превьюшки постоянно, а один раз при загрузках файлов на сервер. В вашем же случае, вы же знаете их истинный размер, поэтому при выводе изображений можно высчитать и прописать малые размеры изображения в тег. | |
|
|
|
|
|
|
|
для: sim5
(18.08.2008 в 13:20)
| | не могли бы вы помочь высчитать размеры превьюшек | |
|
|
|
|
|
|
|
для: ronin
(18.08.2008 в 13:29)
| | Да запросто. Присылайте мне мылом 500 баксов и размеры всех своих картинок, я их на калькуляторе быстренько пересчитаю и вышлю вам :) Ну что смеяться. Вы в школе арифметику проходили? У вас же есть код ресайза изображений, а в нем есть строки, которые из оригинальных размеров делаю малые, фиксированные по ширине или высоте, в процетах ли указано, не важно, есть ведь. Вот этот же код и используйте перед выводом тега изображения на страницу, и вы получите и $w, и $h вам нужные. | |
|
|
|
|
|
|
|
для: sim5
(18.08.2008 в 13:40)
| | да что-то не получается, я пошел другим путем как в теме:
http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=145
|
| |
|
|
|
|
|
|
|
для: ronin
(18.08.2008 в 14:16)
| | А что может не получиться? Вот строки кода из этой темы, ответственные за новый размер:
<?
$ratio = $w/$h;
// получим размеры исходного изображения
$size_img = getimagesize($filename);
// Если размеры меньше, то масштабирования не нужно
if (($size_img[0]<$w) && ($size_img[1]<$h)) return true;
// получим коэффициент сжатия исходного изображения
$src_ratio=$size_img[0]/$size_img[1];
// Здесь вычисляем размеры уменьшенной копии, чтобы при масштабировании сохранились
// пропорции исходного изображения
if ($ratio<$src_ratio) {
$h = $w/$src_ratio;
} else {
$w = $h*$src_ratio;
}
|
В код который делает ресайз изображения вы передаете имя того изображения, тег которого вы и выставляете на страницу. Неужели трудно эту же часть кода использовать перед выводом тега? Если вообще задавать уменьшение в процентах, то будет еще намного проще. | |
|
|
|