note 109025 added to function.imagecopyresampled

From: Date: Thu, 14 Jun 2012 02:36:48 +0000
Subject: note 109025 added to function.imagecopyresampled
Groups: php.notes 
Request: Send a blank email to php-notes+get-188592@lists.php.net to get a copy of this message
/*------------ Страница №1 ------------*/ //Определение типа "фигуры" function ImageStatus($Width, $Height) { if ($Width > $Height) return (int) 1; if ($Width < $Height) return (int) 2; if ($Width == $Height) return (int) 3; return (int) -1; } //Определение опрерации обрезания, на основании тапов "фигур" function OperationInImage($OrigiImageStatus, $NewImageStatus) { if ( ($OrigiImageStatus == 1 AND $NewImageStatus == 2) OR ($OrigiImageStatus == 1 AND $NewImageStatus == 3) OR ($OrigiImageStatus == 3 AND $NewImageStatus == 2)) return (int) 1; if ( ($OrigiImageStatus == 2 AND $NewImageStatus == 1) OR ($OrigiImageStatus == 2 AND $NewImageStatus == 3) OR ($OrigiImageStatus == 3 AND $NewImageStatus == 1)) return (int) 2; if ( ($OrigiImageStatus == 1 AND $NewImageStatus == 1) OR ($OrigiImageStatus == 2 AND $NewImageStatus == 2)) return (int) 3; return (int) -1; } //Расчет параметров длины и ширины для получения требуемого иображения function SizeCut($OrigiWidth, $OrigiHeight, $NewWidth, $NewHeight) { /* определяем фигуру оригинального изображения */ $OrigiImageStatus = ImageStatus($OrigiWidth, $OrigiHeight); /* определяем фигуру требуемого изображения */ $NewImageStatus = ImageStatus($NewWidth, $NewHeight); // определяем метод обрезания той или иной стороны и реализуем его switch (OperationInImage($OrigiImageStatus, $NewImageStatus)) { case 1: // Пропорционально $OrigiHeight =$NewHeight $OrigiWidthCut = ($OrigiHeight * $NewWidth) / $NewHeight; $OrigiHeightCut = $OrigiHeight; break; case 2: //Пропорционально $OrigiWidth =$NewWidth $OrigiHeightCut = ($OrigiWidth * $NewHeight) / $NewWidth; $OrigiWidthCut = $OrigiWidth; break; case 3: //типы фигур равны, определяем, где, что можно срезать $OrigiWidthCut = $OrigiWidth; $OrigiHeightCut = ($OrigiWidth * $NewHeight) / $NewWidth; if ($OrigiHeightCut > $OrigiHeight) { $OrigiHeightCut = $OrigiHeight; $OrigiWidthCut = ($OrigiHeight * $NewWidth) / $NewHeight; } break; default: //Прочее (квадрат), без изменений $OrigiWidthCut = $OrigiWidth; $OrigiHeightCut = $OrigiHeight; break; } return array('width' => $OrigiWidthCut, 'height' => $OrigiHeightCut); } ---- Server IP: 69.147.83.197 Probable Submitter: 46.50.132.253 ---- Manual Page -- http://www.php.net/manual/en/function.imagecopyresampled.php Edit -- https://master.php.net/note/edit/109025 Del: integrated -- https://master.php.net/note/delete/109025/integrated Del: useless -- https://master.php.net/note/delete/109025/useless Del: bad code -- https://master.php.net/note/delete/109025/bad+code Del: spam -- https://master.php.net/note/delete/109025/spam Del: non-english -- https://master.php.net/note/delete/109025/non-english Del: in docs -- https://master.php.net/note/delete/109025/in+docs Del: other reasons-- https://master.php.net/note/delete/109025 Reject -- https://master.php.net/note/reject/109025 Search -- https://master.php.net/manage/user-notes.php

« previous php.notes (#188592) next »