Разработка веб-ресурса с использованием HTML, CSS, JavaScript, PHP. Применение базовых технологий для создания фотоархива в веб-интерфейсе. Захаркина В.В. - 21 стр.

UptoLike

Составители: 

40
// Исходное изображение:
$img = ImageCreateFromJpeg($srcImg);
$w = imageSX($img);
$h = imageSY($img);
// Рассчитываем ширину и высоту миниатюры:
if ($w>$h)
{ $w1 = $maxDim; $h1 = floor($h*$maxDim/$w);
}
else
{ $w1 = floor($w*$maxDim/$h); $h1 = $maxDim;
};
// Масштабируем исходное изображение:
// NB!
// для PHP 5+ ImageCreateTrueColor()
// для PHP 4 используем функцию ImageCreate()
// Здесь приведен вариант для PHP 4
$img_small = ImageCreate($w1,$h1);
imageCopyResized($img_small,$img,0,0,0,0,
$w1,$h1,$w,$h);
// Отправляем миниатюру в браузер:
header("Content-type: image/jpeg");
ImageJpeg($img_small);
?>
Ссылка на файл create_thumb.php с приведенным выше кодом
используется в сценарии основного файла. Для разнообразия
, о
отличие от предыдущего варианта сканирование каталога оформим в
виде функции. Это может быть удобным при необходимости работы с
различными каталогами.
в отличие от предыдущего варианта будем выбирать из каталога
только изображения в формате JPEG.
41
<?
function scanDir($photoPath)
// Сканирует каталог $photoPath, ищет в нем
//изображения в формате JPEG,GIF,PNG.
//Масштабирует и отправляет полученные миниатюры
//в браузер, формируя JavaScript обработчик
//onClick для показа полномасштабного
//изображения кликом по миниатюре
{
// Пытаемся сменить текущий каталог на
//$photoPath:
if ( @chdir($photoPath)==false )
{
echo 'каталог не существует или
недоступен';
return(false);
};
// Теперь $photoPath стал текущим/
// Открываем текущий каталог:
$d = opendir('.');
while ( ($f=readdir($d))!==false )
// пока в каталоге есть файлы:
{
if ( is_file($f) )
{
// массив параметров фотографии:
$photoParameters = @GetImageSize($f);
// Если файл представляет собой
//изображение в формате GIF,JPEG или PNG:
if ( ($thumbParameters[2]>=1) &&
($thumbParameters[2]<=3) )
echo "<img src=
\"create_thumb_out.php?img=$photoPath/$f\"
hspace=\"5\" vspace=\"5\"