Perspective distortion
Creates perspective distortion on the images.
e:perspective
Perspective distortion is determined by the relative distances at which the image is captured and viewed, and is due to the angle of view of the image (as captured) being either wider or narrower than the angle of view at which the image is viewed, hence the apparent relative distances differing from what is expected.
Parameters
- in the case of 8 parameters (4 points):
e:perspective:<D1.x>,<D1.y>,<D2.x>,<D2.y>,<D3.x>,<D3.y>,<D4.x>,<D4.y>
- x1, y1: D1(x, y) (destination)
- x2, y2: D2(x, y)
- x3, y3: D3(x, y)
- x4, y4: D4(y, y)
- in the case of 16 parameters (8 points):
e:perspective:<S1.x>,<S1.y>,<D1.x>,<D1.y>,<S2.x>,<S2.y>,<D2.x>,<D2.y>,<S3.x>,<S3.y>,<D3.x>,<D3.y>,<S4.x>,<S4.y><D4.x>,<D4.y>
- x1, y1: S1(x, y) (source)
- x2, y2: D1(x, y) (destination)
- x3, y3: S2(x, y)
- x4, y4: D2(x, y)
- x5, y5: S3(x, y)
- x6, y6: D3(x, y)
- x7, y7: S4(x, y)
- x8, y8: D4(x, y)
Limitations
- Applicable only to images smaller than 25 mega pixels.
Dependencies
- This transformation does not have any dependencies.
Examples
See the following examples about the possible ways of usage.
Simple perspective shift
w:300_e:pers:30,30,50,150,290,190,270,20_bg:white
use shardimage\shardimagephp\factories\Transformation;
$transformations = (new Transformation())->width(300)->perspective(30,30,50,150,290,190,270,20)->background('white');
Advanced perspective shift, image into image
g:tl_w:400_l:lo:steve/c:crop_g:tl_w:150_x:50/e:pers:236,282,343,598,519,542,409,236/l:end/w:250
use shardimage\shardimagephp\factories\Transformation;
$transformations = (new Transformation())->gTopLeft()->width(400)->overlay('steve')->group()->crop()->gTopLeft()->width(150)->x(50)->group()->perspective(236,282,343,598,519,542,409,236)->end()->width(250);