mirror of
https://github.com/pierre42100/comunic
synced 2024-11-17 02:51:13 +00:00
389 lines
7.0 KiB
PHP
389 lines
7.0 KiB
PHP
|
<?php
|
||
|
|
||
|
namespace Gregwar\Image\Adapter;
|
||
|
|
||
|
use Gregwar\Image\Image;
|
||
|
use Gregwar\Image\Source\Source;
|
||
|
|
||
|
/**
|
||
|
* all the functions / methods to work on images
|
||
|
*
|
||
|
* if changing anything please also add it to \Gregwar\Image\Image
|
||
|
*
|
||
|
* @author wodka <michael.schramm@gmail.com>
|
||
|
*/
|
||
|
interface AdapterInterface{
|
||
|
/**
|
||
|
* set the image source for the adapter
|
||
|
*
|
||
|
* @param Source $source
|
||
|
* @return $this
|
||
|
*/
|
||
|
public function setSource(Source $source);
|
||
|
|
||
|
/**
|
||
|
* get the raw resource
|
||
|
*
|
||
|
* @return resource
|
||
|
*/
|
||
|
public function getResource();
|
||
|
|
||
|
/**
|
||
|
* Gets the name of the adapter
|
||
|
*
|
||
|
* @return string
|
||
|
*/
|
||
|
public function getName();
|
||
|
|
||
|
/**
|
||
|
* Image width
|
||
|
*
|
||
|
* @return int
|
||
|
*/
|
||
|
public function width();
|
||
|
|
||
|
/**
|
||
|
* Image height
|
||
|
*
|
||
|
* @return int
|
||
|
*/
|
||
|
public function height();
|
||
|
|
||
|
/**
|
||
|
* Init the resource
|
||
|
*
|
||
|
* @return $this
|
||
|
*/
|
||
|
public function init();
|
||
|
|
||
|
/**
|
||
|
* Save the image as a gif
|
||
|
*
|
||
|
* @return $this
|
||
|
*/
|
||
|
public function saveGif($file);
|
||
|
|
||
|
/**
|
||
|
* Save the image as a png
|
||
|
*
|
||
|
* @return $this
|
||
|
*/
|
||
|
public function savePng($file);
|
||
|
|
||
|
/**
|
||
|
* Save the image as a jpeg
|
||
|
*
|
||
|
* @return $this
|
||
|
*/
|
||
|
public function saveJpeg($file, $quality);
|
||
|
|
||
|
/**
|
||
|
* Works as resize() excepts that the layout will be cropped
|
||
|
*
|
||
|
* @param int $width the width
|
||
|
* @param int $height the height
|
||
|
* @param int $background the background
|
||
|
*
|
||
|
* @return $this
|
||
|
*/
|
||
|
public function cropResize($width = null, $height = null, $background=0xffffff);
|
||
|
|
||
|
|
||
|
/**
|
||
|
* Resize the image preserving scale. Can enlarge it.
|
||
|
*
|
||
|
* @param int $width the width
|
||
|
* @param int $height the height
|
||
|
* @param int $background the background
|
||
|
* @param boolean $crop
|
||
|
*
|
||
|
* @return $this
|
||
|
*/
|
||
|
public function scaleResize($width = null, $height = null, $background=0xffffff, $crop = false);
|
||
|
|
||
|
/**
|
||
|
* Resizes the image. It will never be enlarged.
|
||
|
*
|
||
|
* @param int $width the width
|
||
|
* @param int $height the height
|
||
|
* @param int $background the background
|
||
|
* @param boolean $force
|
||
|
* @param boolean $rescale
|
||
|
* @param boolean $crop
|
||
|
*
|
||
|
* @return $this
|
||
|
*/
|
||
|
public function resize($width = null, $height = null, $background = 0xffffff, $force = false, $rescale = false, $crop = false);
|
||
|
|
||
|
/**
|
||
|
* Crops the image
|
||
|
*
|
||
|
* @param int $x the top-left x position of the crop box
|
||
|
* @param int $y the top-left y position of the crop box
|
||
|
* @param int $width the width of the crop box
|
||
|
* @param int $height the height of the crop box
|
||
|
*
|
||
|
* @return $this
|
||
|
*/
|
||
|
public function crop($x, $y, $width, $height);
|
||
|
|
||
|
/**
|
||
|
* enable progressive image loading
|
||
|
*
|
||
|
* @return $this
|
||
|
*/
|
||
|
public function enableProgressive();
|
||
|
|
||
|
/**
|
||
|
* Resizes the image forcing the destination to have exactly the
|
||
|
* given width and the height
|
||
|
*
|
||
|
* @param int $width the width
|
||
|
* @param int $height the height
|
||
|
* @param int $background the background
|
||
|
*
|
||
|
* @return $this
|
||
|
*/
|
||
|
public function forceResize($width = null, $height = null, $background = 0xffffff);
|
||
|
|
||
|
/**
|
||
|
* Perform a zoom crop of the image to desired width and height
|
||
|
*
|
||
|
* @param integer $width Desired width
|
||
|
* @param integer $height Desired height
|
||
|
* @param int $background
|
||
|
*
|
||
|
* @return $this
|
||
|
*/
|
||
|
public function zoomCrop($width, $height, $background = 0xffffff);
|
||
|
|
||
|
|
||
|
/**
|
||
|
* Fills the image background to $bg if the image is transparent
|
||
|
*
|
||
|
* @param int $background background color
|
||
|
*
|
||
|
* @return $this
|
||
|
*/
|
||
|
public function fillBackground($background = 0xffffff);
|
||
|
|
||
|
|
||
|
/**
|
||
|
* Negates the image
|
||
|
*
|
||
|
* @return $this
|
||
|
*/
|
||
|
public function negate();
|
||
|
|
||
|
/**
|
||
|
* Changes the brightness of the image
|
||
|
*
|
||
|
* @param int $brightness the brightness
|
||
|
*
|
||
|
* @return $this
|
||
|
*/
|
||
|
public function brightness($brightness);
|
||
|
|
||
|
/**
|
||
|
* Contrasts the image
|
||
|
*
|
||
|
* @param int $contrast the contrast [-100, 100]
|
||
|
*
|
||
|
* @return $this
|
||
|
*/
|
||
|
public function contrast($contrast);
|
||
|
|
||
|
/**
|
||
|
* Apply a grayscale level effect on the image
|
||
|
*
|
||
|
* @return $this
|
||
|
*/
|
||
|
public function grayscale();
|
||
|
|
||
|
/**
|
||
|
* Emboss the image
|
||
|
*
|
||
|
* @return $this
|
||
|
*/
|
||
|
public function emboss();
|
||
|
|
||
|
/**
|
||
|
* Smooth the image
|
||
|
*
|
||
|
* @param int $p value between [-10,10]
|
||
|
*
|
||
|
* @return $this
|
||
|
*/
|
||
|
public function smooth($p);
|
||
|
|
||
|
/**
|
||
|
* Sharps the image
|
||
|
*
|
||
|
* @return $this
|
||
|
*/
|
||
|
public function sharp();
|
||
|
|
||
|
/**
|
||
|
* Edges the image
|
||
|
*
|
||
|
* @return $this
|
||
|
*/
|
||
|
public function edge();
|
||
|
|
||
|
/**
|
||
|
* Colorize the image
|
||
|
*
|
||
|
* @param int $red value in range [-255, 255]
|
||
|
* @param int $green value in range [-255, 255]
|
||
|
* @param int $blue value in range [-255, 255]
|
||
|
*
|
||
|
* @return $this
|
||
|
*/
|
||
|
public function colorize($red, $green, $blue);
|
||
|
|
||
|
/**
|
||
|
* apply sepia to the image
|
||
|
*
|
||
|
* @return $this
|
||
|
*/
|
||
|
public function sepia();
|
||
|
|
||
|
/**
|
||
|
* Merge with another image
|
||
|
*
|
||
|
* @param Image $other
|
||
|
* @param int $x
|
||
|
* @param int $y
|
||
|
* @param int $width
|
||
|
* @param int $height
|
||
|
*
|
||
|
* @return $this
|
||
|
*/
|
||
|
public function merge(Image $other, $x = 0, $y = 0, $width = null, $height = null);
|
||
|
|
||
|
/**
|
||
|
* Rotate the image
|
||
|
*
|
||
|
* @param float $angle
|
||
|
* @param int $background
|
||
|
*
|
||
|
* @return $this
|
||
|
*/
|
||
|
public function rotate($angle, $background = 0xffffff);
|
||
|
|
||
|
/**
|
||
|
* Fills the image
|
||
|
*
|
||
|
* @param int $color
|
||
|
* @param int $x
|
||
|
* @param int $y
|
||
|
*
|
||
|
* @return $this
|
||
|
*/
|
||
|
public function fill($color = 0xffffff, $x = 0, $y = 0);
|
||
|
|
||
|
/**
|
||
|
* write text to the image
|
||
|
*
|
||
|
* @param string $font
|
||
|
* @param string $text
|
||
|
* @param int $x
|
||
|
* @param int $y
|
||
|
* @param int $size
|
||
|
* @param int $angle
|
||
|
* @param int $color
|
||
|
* @param string $align
|
||
|
*/
|
||
|
public function write($font, $text, $x = 0, $y = 0, $size = 12, $angle = 0, $color = 0x000000, $align = 'left');
|
||
|
|
||
|
/**
|
||
|
* Draws a rectangle
|
||
|
*
|
||
|
* @param int $x1
|
||
|
* @param int $y1
|
||
|
* @param int $x2
|
||
|
* @param int $y2
|
||
|
* @param int $color
|
||
|
* @param bool $filled
|
||
|
*
|
||
|
* @return $this
|
||
|
*/
|
||
|
public function rectangle($x1, $y1, $x2, $y2, $color, $filled = false);
|
||
|
|
||
|
/**
|
||
|
* Draws a rounded rectangle
|
||
|
*
|
||
|
* @param int $x1
|
||
|
* @param int $y1
|
||
|
* @param int $x2
|
||
|
* @param int $y2
|
||
|
* @param int $radius
|
||
|
* @param int $color
|
||
|
* @param bool $filled
|
||
|
*
|
||
|
* @return $this
|
||
|
*/
|
||
|
public function roundedRectangle($x1, $y1, $x2, $y2, $radius, $color, $filled = false);
|
||
|
|
||
|
/**
|
||
|
* Draws a line
|
||
|
*
|
||
|
* @param int $x1
|
||
|
* @param int $y1
|
||
|
* @param int $x2
|
||
|
* @param int $y2
|
||
|
* @param int $color
|
||
|
*
|
||
|
* @return $this
|
||
|
*/
|
||
|
public function line($x1, $y1, $x2, $y2, $color = 0x000000);
|
||
|
|
||
|
/**
|
||
|
* Draws an ellipse
|
||
|
*
|
||
|
* @param int $cx
|
||
|
* @param int $cy
|
||
|
* @param int $width
|
||
|
* @param int $height
|
||
|
* @param int $color
|
||
|
* @param bool $filled
|
||
|
*
|
||
|
* @return $this
|
||
|
*/
|
||
|
public function ellipse($cx, $cy, $width, $height, $color = 0x000000, $filled = false);
|
||
|
|
||
|
/**
|
||
|
* Draws a circle
|
||
|
*
|
||
|
* @param int $cx
|
||
|
* @param int $cy
|
||
|
* @param int $r
|
||
|
* @param int $color
|
||
|
* @param bool $filled
|
||
|
*
|
||
|
* @return $this
|
||
|
*/
|
||
|
public function circle($cx, $cy, $r, $color = 0x000000, $filled = false);
|
||
|
|
||
|
/**
|
||
|
* Draws a polygon
|
||
|
*
|
||
|
* @param array $points
|
||
|
* @param int $color
|
||
|
* @param bool $filled
|
||
|
*
|
||
|
* @return $this
|
||
|
*/
|
||
|
public function polygon(array $points, $color, $filled = false);
|
||
|
|
||
|
/**
|
||
|
* Flips the image
|
||
|
*
|
||
|
* @param int $flipVertical
|
||
|
* @param int $flipHorizontal
|
||
|
*
|
||
|
* @return $this
|
||
|
*/
|
||
|
public function flip($flipVertical, $flipHorizontal);
|
||
|
}
|