Изменение размеров и копирование изображений
Для изменения размеров и копирования изображений применяется функция
imagecopyresampled(). Функция имеет следующий формат:
imagecopyresampled(<Идентификатор1>, <Идентификатор2>, <X1>, <Y1>,
<X2>, <Y2>, <Ширина1>, <Высота1>, <Ширина2>,
<Высота2>)
Параметр <Идентификатор1> задает изображение, в которое требуется скопи- ровать изображение, заданное параметром <Идентификатор2>. Изображение, в которое копируем, должно быть полноцветным или созданным с помощью функции imagecreatetruecolor(). Функция imagecreatetruecolor() часто применяется для создания подложки при изменении размеров изображения.
Параметры <X2>, <Y2>, <Ширина2> и <Высота2> задают прямоугольную об- ласть в изображении, заданном в параметре <Идентификатор2>, которую мы будем копировать. А параметры <X1>, <Y1>, <Ширина1> и <Высота1> задают прямоугольную область, в которую будет вставлен копируемый фрагмент.
В качестве примера уменьшим изображение в два раза и выведем полученное изображение в Web-браузер (листинг 5.68).
Листинг 5.68. Изменение размера изображения
<?php
$img2 = imagecreatefromgif(‘foto.gif’);
if (!$img2) die(‘Изображение не удалось загрузить’);
// Получаем размеры изображения
list($width2, $height2) = getimagesize(‘foto.gif’);
// Получаем ширину и высоту нового изображения
$width1 = $width2/2;
$height1 = $height2/2;
// Создаем подложку для нового изображения
$img1 = imagecreatetruecolor($width1, $height1);
if (!$img1) die(‘Изображение не удалось создать’);
header(‘Content-type: image/jpeg’);
// Копируем и изменяем размер
imagecopyresampled($img1, $img2, 0, 0, 0, 0, $width1, $height1,
$width2, $height2);
imagejpeg($img1); imagedestroy($img1); imagedestroy($img2);
?>
В листинге 5.67 мы рассмотрели проблему вывода текста на готовое изобра- жение и не получили точный цвет текста. Теперь рассмотрим вывод текста указанным цветом. Для этого получаем исходное изображение. Создаем под- ложку такого же размера и копируем исходное изображение на созданную подложку. Далее выводим надпись нужным цветом (листинг 5.69).
Листинг 5.69. Вывод текста на готовое изображение указанным цветом
<?php
$foto_name = ‘foto.gif’;
// Загружаем исходное изображение
$img2 = imagecreatefromgif($foto_name);
if (!$img2) die(‘Изображение не удалось загрузить’);
// Получаем размеры изображения
list($width, $height) = getimagesize($foto_name);
// Создаем подложку для нового изображения
$img1 = imagecreatetruecolor($width, $height);
if (!$img1) die(‘Изображение не удалось создать’);
// Копируем исходное изображение на подложку
imagecopyresampled($img1, $img2, 0, 0, 0, 0, $width, $height,
$width, $height);
imagedestroy($img2);
$white = imagecolorallocate($img1, 255, 255, 255);
if ($white === false) die(‘Ошибка’);
$str = ‘Фонтан Самсон’;
$str = iconv("windows-1251", "UTF-8", $str);
$fontfile = ‘C:/Windows/Fonts/arial.ttf’;
// Выводим надпись на изображение
imagettftext($img1, 28, 0, 100, 440, $white, $fontfile, $str);
// Выводим изображение header(‘Content-type: image/gif’); imagegif($img1); imagedestroy($img1);
?>
Результат выполнения скрипта изображен на рис. 5.3.
Рис. 5.3. Вывод текста
на готовое изображение определенным цветом
Источник: Прохоренок Н. А. HTML, JavaScript, PHP и MySQL. Джентльменский набор Web-мастера. — 3-е изд., перераб. и доп. — СПб.: БХВ-Петербург, 2010. — 912 с.: ил. + Видеокурс (на CD-ROM) — (Профессиональное программирование)
Похожие посты:
- Создание текстов для пользователей (0)
- РАЗРАБОТАЙТЕ СВОЙ ВЕБ-САЙТ ДЛЯ ПОИСКОВОЙ СИСТЕМЫ GOOGLE (0)
- Создание колонки, занимающей все доступное пространство по высоте (0)
- Добавление тени к блоку (0)
- Выделение текста на странице (0)
- Вывод текста заглавными буквами с помощью CSS (0)
- Задание фонового изображения для страницы с помощью CSS (0)