|
|
|
|
|
для: glsv (Дизайнер)
(22.04.2005 в 04:14)
| | Да, при выносе в отдельный файл все работает, но я хотел сделать все в одном файле через функцию, поскольку предполагал включить файл через include virtual в страницу с SSI, а в этом случае второй вложенный файл не сработает. Так ведь?
Те, как японял, в одном файле сделать это не получится? | |
|
|
|
|
|
|
|
для: denvor
(21.04.2005 в 23:47)
| | Вот если бы он запустился, то посмотрев результирующий HTML-код, вы, вероятно, увидели бы нечто похожее
<img vspace=5 hspace=5 border=0 alt='Увеличить...'
src=" ? р о ?......>
|
Т.е. в параметр src тега <img> у вас подставляется само изображение - как если бы открыть файл JPEG на редактирование, например, в FAR, скопировать все его содержимое и вставить на страницу.
А должно быть вот так:
<img vspace=5 hspace=5 border=0 alt='Увеличить...' src="img.php">
|
Т.е. вам нужно вынести функцию в отдельный файл, и имя этого файла подставлять в параметр src. Параметры функции передавать через URL
<?
echo"<img vspace=5 hspace=5 border=0 alt='Увеличить...' src='img.php?pic=".$news["url_pict"]."&size=150>";
?>
|
Полную реализацию можете посмотреть по ссылке, которую привел cheops. | |
|
|
|
|
|
|
|
для: cheops
(21.04.2005 в 23:46)
| | ответ через 20 секунд - это круто! Я не успеваю задавать вопросы! :) | |
|
|
|
|
|
|
|
для: cheops
(21.04.2005 в 22:59)
| | Спасибо за ссылку! Но хотелось разобраться, что же у меня не работает - ведь код функции в отдельном файле пашет на ура.
Подозреваю, что напутал в последних строчках функции или ее вызове, но что именно - пока не пойму :( | |
|
|
|
|
|
|
|
для: denvor
(21.04.2005 в 23:44)
| | Оно так разукрашивается, если поместить код в тэги <?php и ?> :))) | |
|
|
|
|
|
|
|
для: ZC
(21.04.2005 в 22:10)
| | О, а как это оно так разукрасилось? | |
|
|
|
|
|
|
|
для: denvor
(21.04.2005 в 17:23)
| | Хм... вы можете воспользоваться готовым кодом для создания уменьшенных копий изображений по ссылке http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=145 | |
|
|
|
|
|
|
|
для: denvor
(21.04.2005 в 17:23)
| |
<?php
// функция отображения картинки
function small_pic ($pic,$size)
{
$image = $pic;
$pic_size = getimagesize ($pic);
$type = $pic_size[2];
$width = $pic_size[0];
$height = $pic_size[1];
$max_w = $size;
$max_h = $size;
if(!empty($image)and !empty($type)and !empty($width)and !empty($height))
{
if(empty($max_w))$max_width = 100;
else $max_width = $max_w;
if(empty($max_h))$max_height =100;
else $max_height = $max_h;
$x_ratio = $max_width / $width;
$y_ratio = $max_height / $height;
if ( ($width <= $max_width) && ($height <= $max_height) )
{
$tn_width = $width;
$tn_height = $height;
}
else if (($x_ratio * $height) < $max_height)
{
$tn_height = ceil($x_ratio * $height);
$tn_width = $max_width;
}
else
{
$tn_width = ceil($y_ratio * $width);
$tn_height = $max_height;
}
if($type==1)$src = ImageCreateFromGif($image);
elseif($type==2)$src = ImageCreateFromJpeg($image);
elseif($type==3)$src = ImageCreateFromPng($image);
$dst = ImageCreateTrueColor($tn_width,$tn_height);
imagecopyresized($dst,$src,
0,0,
0,0,
$tn_width,$tn_height,
$width,$height);
header("Content-type: image/Jpeg");
ImageJpeg($dst,null,-1);
ImageDestroy($src);
ImageDestroy($dst);
}
////////////////////////////////////////////////////////////////////////////
...
...
// выводим картинку
echo "<img align='$pic_align' vspace=5 hspace=5 border=0 alt='Увеличить...'
src=".small_pic($news[url_pict],150).">";
?>
|
Во так удобнее читать =) | |
|
|
|
|
|
|
| Решил модернизировать ваш блок размещения новостей: во-первых добавил возможность создания разделов ( и статью теперь можно размещать в нужном разделе)
а во вторых решил добавить функцию автоматического масштабирования картинки co ссылкой на картинку большого размера. Написал скрипт, который получает из скрипта отображения статьи адрес картинки и максимальный размер и выводит изображение - все работает. Но возникла необходимость подключить это в shtml страничку - а там невозможно вызвать скрипт из вставленного через include virtual скрипта вывода статьи. Решил переписать с использованием функции (до этого никогда не использовал) - и на тебе, не работает.
Можете взглянуть, в чем затык? В отдельном файле эта функцция нормально работает :(
// функция отображения картинки
function small_pic ($pic,$size)
{
$image = $pic;
$pic_size = getimagesize ($pic);
$type = $pic_size[2];
$width = $pic_size[0];
$height = $pic_size[1];
$max_w = $size;
$max_h = $size;
if(!empty($image)and !empty($type)and !empty($width)and !empty($height))
{
if(empty($max_w))$max_width = 100;
else $max_width = $max_w;
if(empty($max_h))$max_height =100;
else $max_height = $max_h;
$x_ratio = $max_width / $width;
$y_ratio = $max_height / $height;
if ( ($width <= $max_width) && ($height <= $max_height) )
{
$tn_width = $width;
$tn_height = $height;
}
else if (($x_ratio * $height) < $max_height)
{
$tn_height = ceil($x_ratio * $height);
$tn_width = $max_width;
}
else
{
$tn_width = ceil($y_ratio * $width);
$tn_height = $max_height;
}
if($type==1)$src = ImageCreateFromGif($image);
elseif($type==2)$src = ImageCreateFromJpeg($image);
elseif($type==3)$src = ImageCreateFromPng($image);
$dst = ImageCreateTrueColor($tn_width,$tn_height);
imagecopyresized($dst,$src,
0,0,
0,0,
$tn_width,$tn_height,
$width,$height);
header("Content-type: image/Jpeg");
ImageJpeg($dst,null,-1);
ImageDestroy($src);
ImageDestroy($dst);
}
////////////////////////////////////////////////////////////////////////////
...
...
// выводим картинку
echo "<img align='$pic_align' vspace=5 hspace=5 border=0 alt='Увеличить...'
src=".small_pic($news[url_pict],150).">";
|
| |
|
|
|
|