Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Вебмастеру (http://forum.oszone.net/forumdisplay.php?f=22)
-   -   ширина и высота картинки = const ??? (http://forum.oszone.net/showthread.php?t=31542)

Guest 27-09-2003 01:45 215780

По ссылке открывается большая картинка
<a href="#" onclick="window.open ('gallery/2/001.jpg', 'w1','top=0, left=0, titlebar=no, toolbar=no, resizable=yes, width=800, height=600, directories=no, status=no,  scrollbars=yes menubar=no')">
Так вот нужно, чтобы та картинка, которая открылась в новом окне не сжималась по размерам окна, а чтобы ее высота и ширина были неизменны, и управлять ею можно было с помощью полос прокрутки.

Prisoner 27-09-2003 14:48 215781

А почему бы не указывать параметры открываемого окна (габариты его то есть) такие же как у картинки? Задать окно полностью жесткое - не ресайзится, не имеет скроллбаров.  

Guest 28-09-2003 21:45 215782

дело в том, что мои  картинки имеют гораздо больший размер, чем даже 1024*768, поэтому хотелось бы, чтоб открывалось небольшое окно, в котором можно было прокуручивать длинную картинку по всей ее высоте.

Prisoner 28-09-2003 23:23 215783

Странное дело - у меня не сжимаются... хотя возможно, что картинки в одном из проектов не больше 800х600. %(

Guest 29-09-2003 22:48 215784

Похоже я въехал сам:

Дело просто: сжимаемость или не сжимаемость картинки зависит от настроек пользователя в браузере. а чтоб такого не было делаем так:  для каждой картинки делаем отдельный html, например 1.htm с параметрами картинки
<img src="1.jpg" width="1169" height="2253">, а потом уже в качестве ссылки на нее можно вешать ссылку не на саму картинку jpg , а на этот 1.htm такого же вида : <a href="#" onclick="window.open ('gallery/2/1.htm', 'w1','top=0, left=0, titlebar=no, toolbar=no, resizable=yes, width=800, height=600, directories=no, status=no, scrollbars=yes, menubar=no')">
Только одно но! Если у меня в галерее будет 500 картинок, это надо создавать 500 html страниц для каждой!!! Что не очень радует

Prisoner 30-09-2003 01:48 215785

Это решается простым скриптом, скажем на PHP. Он будет генерить контент файла а ссылка в OnClick должна быть указана на него. Ему просто надо передать ключевой параметр, к примеру номер картинки. Узнать размер картинки средствами PHP тоже очень просто. В общем реализовать твою задумку для неограниченного количества картинок очень просто...

Jekamajor 30-09-2003 22:32 215786

я верю, что и так можно, но я вообщем не настолько продвинутый пользователь, чтобы на php писать. Я ведь и HTML не знаю - просто что не реализует редактор приходится ручками дописывать...
Ну а если на php это просто, то может можно прямо тут пример привести?

Prisoner 01-10-2003 08:28 215787

Оки... что-то вроде:
Пусть скрипт принимает в качестве параметра номер картинки, то есть вызываем его так - img.php?N=<some_number>
Код:

//открывающее html форматирование - скажем обрамление, рамки и
//все прочее, что будет окружать картинку
<?
//берем параметр из строки адреса
$PicNum=$_GET["N"];
//не лишне всякие проверки для пущей безопастности встроить, но
//это уже отдельный вопрос

//проверяем есть ли нужная нам картинка физически, если есть -
//узнаем ее габариты
  If (File_Exists("img_directory/".$PicNum.".jpg"))
    {
     $ImgSize= GetImageSize("img_directory/".$PicNum.".jpg");
     //выводим собственно тэг картинки
     Echo "<img src=\"img_directory/".$PicNum.".jpg\" {$ImgSize[3]}>";
    }
  Else
    {
      Echo "Облом - картинку уперли! :("
    }
  
?>

//закрывающее html форматирование


Jekamajor 01-10-2003 11:07 215788

//берем параметр из строки адреса
$PicNum=$_GET["N"];
Вот тут немного непонятно...
здесь нужно самому подставлять значения PicNum или оно само выставляет?
И что означает {$ImgSize[3]}?


Prisoner 01-10-2003 23:25 215789

1) Про $PicNum. Это переменная в которую записывается чисо из параметра строки адреса. Он у нас такой - http://www.some_server.xxx/some_dire...ome_number>. Так в $PicNum запишется как раз значение <some_number>, видишь обращаемся к ассоциативному массиву переменных переданных скрипту методом GET - $_GET["N"] и берем параметр с именем N. ТО есть если так - img.php?N=3, то в $PicNum будет 3... само будет :).
2) Про $ImgSize. Вызываем функцию которая вернет размеры изображения, в качестве параметра передаем ей имя файла картинки (перед вызовом функции надо проверить существование этого файла, а то возникает некрасивое сообщение об ошибке). Имя файла ненерим на лету, составляя его из параметра переданного скрипту: $ImgSize= GetImageSize("img_directory/".$PicNum.".jpg"). То есть если так - img.php?N=3, то вызов будет таким - GetImageSize("img_directory/3.jpg") (точка в PHP - это сложение строк, причеп типы приводятся к строковому автоматом). Функция возвращает массив:
Цитата:

Возвращает массив из 4 элементов. Индекс 0 содержит ширину/width изображения в пикселах. Индекс 1 содержит высоту/height. Индекс 2 это флаг, указывающий тип изображения. 1 = GIF, 2 = JPG, 3 = PNG, 4 = SWF, 5 = PSD, 6 = BMP, 7 = TIFF(байтовый порядок intel), 8 = TIFF(байтовый порядок motorola), 9 = JPC, 10 = JP2, 11 = JPX. Индекс 3 это текстовая строка с корректной строкой height="yyy" width="xxx", которая может использоваться непосредственно в тэге IMG.
Из приведеного выше, ясно, что $ImgSize[3] содержит строку - height="xxx" width="yyy".

Ой, попрут меня с форума за курсы для начинающих :gigi:

Jekamajor 01-10-2003 23:40 215790

Ой, если попрут. то не надо лучше:biggrin: В любом случае спасибо за курс введения, больше мучать тебя не смею ;)
Одно скажу, что в основном все пока понятно - это точно! Дальше пока углубляться не стану, пока нет необходимости в создании пхп галереи (но похоже дело стоящее), а как надумаю, нужно будет немного поработать с изучением.

Prisoner 02-10-2003 00:27 215791

На счет попрут - джоук :) .На то он и форум, чтобы делиться знаниями.


Время: 20:52.

Время: 20:52.
© OSzone.net 2001-