Приднестровская поддержка XOOPS
Для изменения размеров и копирования изображений применяется функция 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-браузер (листинг 68).
Листинг 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);
?>
В листинге 67 мы рассмотрели проблему вывода текста на готовое изображение и не получили точный цвет текста. Теперь рассмотрим вывод текста указанным цветом. Для этого получаем исходное изображение. Создаем подложку такого же размера и копируем исходное изображение на созданную подложку. Далее выводим надпись нужным цветом (листинг 69).
Листинг 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);
?>
Результат выполнения скрипта изображен на рис. 3.
Рис. 3. Вывод текста на готовое изображение определенным цветом
Отправитель | Нити |
---|
4 пользователь(ей) активно (3 пользователь(ей) просматривают Инструкции)
Участников: 0 Гостей: 4 далее... |