Студопедия

Главная страница Случайная страница

КАТЕГОРИИ:

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






SimpleImage.php






Класс обработки изображений.

В классе мы определяем переменные для картинки и типа картинки

var $image;

var $image_type;

 

Функция загрузки, в которой мы получаем размер и определяем тип. В качестве параметра передается файл изображения

 

function load($filename) {

 

$image_info = getimagesize($filename);

$this-> image_type = $image_info[2];

if($this-> image_type == IMAGETYPE_JPEG) {

 

$this-> image = imagecreatefromjpeg($filename);

} elseif($this-> image_type == IMAGETYPE_GIF) {

 

$this-> image = imagecreatefromgif($filename);

} elseif($this-> image_type == IMAGETYPE_PNG) {

 

$this-> image = imagecreatefrompng($filename);

}

}

 

Функция сохранения, с параметрами файл, тип, сжатие и права. Определяем тип и сохраняем.

 

function save($filename, $image_type=IMAGETYPE_JPEG, $compression=75, $permissions=null) {

 

if($image_type == IMAGETYPE_JPEG) {

imagejpeg($this-> image, $filename, $compression);

} elseif($image_type == IMAGETYPE_GIF) {

 

imagegif($this-> image, $filename);

} elseif($image_type == IMAGETYPE_PNG) {

 

imagepng($this-> image, $filename);

}

if($permissions! = null) {

 

chmod($filename, $permissions);

 

Функция вывод, также определяем тип и выводим

 

function output($image_type=IMAGETYPE_JPEG) {

 

if($image_type == IMAGETYPE_JPEG) {

imagejpeg($this-> image);

} elseif($image_type == IMAGETYPE_GIF) {

 

imagegif($this-> image);

} elseif($image_type == IMAGETYPE_PNG) {

 

imagepng($this-> image);

}

}

 

Функции получения ширины и высоты изображения

//получение исходной ширины

function getWidth() {

 

return imagesx($this-> image);

}

//получение исходной высоты

function getHeight() {

 

return imagesy($this-> image);

}

Функции изменения размера

(ресайза)

//ресайз по высоте

function resizeToHeight($height) {

 

$ratio = $height / $this-> getHeight();

$width = $this-> getWidth() * $ratio;

$this-> resize($width, $height);

}

//ресайз по ширине

function resizeToWidth($width) {

$ratio = $width / $this-> getWidth();

$height = $this-> getheight() * $ratio;

$this-> resize($width, $height);

}

Ресайз, по сути, сжатие изображения, для представления его в компактном виде.

Сжатие изображений — применение алгоритмов сжатия данных к изображениям, хранящимся в цифровом виде. В результате сжатия уменьшается размер изображения, из-за чего уменьшается время передачи изображения по сети и экономится пространство для хранения. Сжатие изображений подразделяют на сжатие с потерями качества и сжатие без потерь. Сжатие без потерь часто предпочтительней для искусственно построенных изображений, таких как графики, иконки программ, либо для специальных случаев, например, если изображения предназначены для последующей обработки алгоритмами распознавания изображений. Алгоритмы сжатия с потерями при увеличении степени сжатия как правило порождают хорошо заметные человеческому глазу артефакты.

 


Поделиться с друзьями:

mylektsii.su - Мои Лекции - 2015-2024 год. (0.009 сек.)Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав Пожаловаться на материал