[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Класс для работы с изображениями
ИНСИ
Уже как 2 года, вижу много тем с просьбами помочь написать функцию для уменьшения фото и т.д. Я решил написать класс и дать на все общее распространение.

Пользоваться им не сложно.

Подключаем файл с классом:
require_once 'class.php';

1. Уменьшение фото пропорционально
/*
Метод: resize - Уменьшает фото пропорционально
return: width - ширина, height - высота, path - путь к дирректории, name - название файла
*/

$img = new img('1.jpeg');

// Уменьшит фото пропорционально ширине, сохранив в директорию с классом и уникальным именем
$infoResize = $img->resize(800);

// Уменьшит фото пропорционально высоте, сохранив в директорию с классом и уникальным именем
$infoResize = $img->resize(false, 500);

// Уменьшит фото пропорционально данным, которые указаны, сохранив в директорию с классом и уникальным именем
$infoResize = $img->resize(800, 500);

// Уменьшит фото пропорционально, сохранив в директорию img с уникальным именем
$infoResize = $img->resize(800,500,'img');

// Уменьшит фото пропорционально, сохранив в директорию img c названием newFile
$infoResize = $img->resize(800, 500,'img','newFile');

2. Резка фото
/*
Метод: crop - Режит кусок
return: width - ширина, height - высота, path - путь к дирректории, name - название файла
*/

$img = new img('1.jpeg');

// Вырежит кусок - шириной 800px, высота - самого рисунка в директорию с классом и уникальным именем
$infoCrop = $img->crop(800);

// Вырежит кусок - высотой 800px, ширина - самого рисунка в директорию с классом и уникальным именем
$infoCrop = $img->crop(false, 500);

// Вырежит кусок - высотой 800px, ширина - 500px в директорию с классом и уникальным именем
$infoCrop = $img->crop(800, 500);

// Вырежит кусок - высотой 800px, ширина - 500px в директорию img и уникальным именем
$infoCrop = $img->crop(800,500,'img');

// Вырежит кусок - высотой 800px, ширина - 500px в директорию img c названием newFile
$infoCrop = $img->crop(800, 500,'img','newFile');

3. Резка фото, уменьшив пропорционально
/*
Метод: cropThumb - Режит, пропорционально уменьшив (превью)
return: width - ширина, height - высота, path - путь к дирректории, name - название файла
*/

$img = new img('1.jpeg');

// Вырежит кусок - шириной 800px, высота - самого рисунка (предварительно уменьшив) в директорию с классом и уникальным именем
$infoCropThumb = $img->cropThumb(800);

// Вырежит кусок - высотой 800px, ширина - самого рисунка (предварительно уменьшив) в директорию с классом и уникальным именем
$infoCropThumb = $img->cropThumb(false, 500);

// Вырежит кусок - высотой 800px, ширина - 500px (предварительно уменьшив) в директорию с классом и уникальным именем
$infoCropThumb = $img->cropThumb(800, 500);

// Вырежит кусок - высотой 800px, ширина - 500px в директорию img (предварительно уменьшив) и уникальным именем
$infoCropThumb = $img->cropThumb(800,500,'img');

// Вырежит кусок - высотой 800px, ширина - 500px в директорию img c названием newFile (предварительно уменьшив)
$infoCropThumb = $img->cropThumb(800, 500,'img','newFile');

4. Накладывание водяного знака (изображение) на файл
/*
Метод: waterMarkImg - Накладывает водяной знак (изображение) на фото
return: position - позиция, align - выравнивание, path - путь к дирректории, name - название файла, margin - отступ от границы
*/

$img = new img('1.jpeg');

// Устанавливаем данные для водяного знака - (можем не указывать)
$img->waterSettings(array(
'imgAlpha' => false, // Прозрачность от 100 до 0
'position' => 'top', // top - вверху, bottom - снизу
'align' => 'left', // left - слева, right - справо
'margin' => 10 // Отступ от границы
));

// Накладываем водяной знак на файл 1.jpeg
$arrInfo = $img->waterMarkImg('watermark.png');

// Накладываем водяной знак на файл 1.jpeg и создаем копию в директории img
$arrInfo = $img->waterMarkImg('watermark.png','img');

// Накладываем водяной знак на файл 1.jpeg, создаем копию в директории img и создаем уникальное имя для нового файла
$arrInfo = $img->waterMarkImg('watermark.png','img', true);

5. Накладывание водяного знака (текст) на фото
/*
Метод: waterMarkText - Накладывает водяной знак (текст) на фото
return: position - позиция, align - выравнивание, path - путь к дирректории, name - название файла, margin - отступ от границы
*/

$img = new img('1.jpeg');

// Устанавливаем данные для водяного знака - (можем не указывать)
$img->waterSettings(array(
'fontAlpha' => 0, // Прозрачность от 0 до 100
'fontSize' => 20, // Размер текста
'fontFamily' => 'tahoma.ttf', // Шрифт
'fontColor' => array(12, 12, 75), // Цветовая гамма RGB

'position' => 'top', // top - вверху, bottom - снизу
'align' => 'left', // left - слева, right - справо
'margin' => 10 // Отступ от границы
));

// Накладываем водяной знак (текст) на файл 1.jpeg
$arrInfo = $img->waterMarkText('Автор: ИНСИ');

// Накладываем водяной знак (текст) на файл 1.jpeg и создаем копию в директории img
$arrInfo = $img->waterMarkText('Автор: ИНСИ','img');

// Накладываем водяной знак (текст) на файл 1.jpeg, создаем копию в директории img и создаем уникальное имя для нового файла
$arrInfo = $img->waterMarkText('Автор: ИНСИ','img', true);


Класс умеет работать с типами: jpg, png, gif (тестил на этих файлах) и хорошо работает с прозрачными изображениями (не заливает черным цветом).
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.