<?php 
/* 
 * This file is part of GImage. 
 * 
 * (c) Jose Quintana <https://joseluisq.net> 
 * 
 * This source file is subject to the MIT license that is bundled 
 * with this source code in the file LICENSE. 
 */ 
 
/** 
 * Creating a Presentation Card. 
 * 
 * @author Jose Quintana <https://joseluisq.net> 
 */ 
 
namespace GImage\Examples; 
 
use GImage\Image; 
use GImage\Text; 
use GImage\Figure; 
use GImage\Canvas; 
 
require __DIR__ . '/_config.php'; 
require __DIR__ . '/../tests/bootstrap.php'; 
 
// Creating an avatar image 
$avatar_image = new Image(); 
$avatar_image 
    // Image size (500x500) 
    ->load('https://i.imgur.com/vLXIIoY.jpg') 
    ->centerCrop(100, 100) 
    ->setTop(60) 
    ->setLeft(70); 
 
$about_text = new Text("MY AWESOME PRESENTATION CARD\n~ BY GIMAGE ~"); 
$about_text->setSize(16) 
    ->setWidth(300) 
    ->setLeft(210) 
    ->setLineHeight(1.5) 
    ->setTop(75) 
    ->setColor(204, 164, 116) 
    ->setFontface(BASE_PATH . '/fonts/Lato-Lig.ttf'); 
 
$twitter_text = new Text('@joseluisq/gimage'); 
$twitter_text 
    ->setSize(11) 
    ->setWidth(70) 
    ->setLeft(410) 
    ->setTop(210) 
    ->setColor(130, 127, 125) 
    ->setFontface(BASE_PATH . '/fonts/Lato-Reg.ttf'); 
 
$canvas_figure = new Figure(550, 250); 
$canvas_figure 
    ->setBackgroundColor(47, 42, 39) 
    ->create(); 
 
$avatar_box = new Figure($avatar_image->getWidth() + 16, $avatar_image->getHeight() + 17); 
$avatar_box 
    ->setBackgroundColor(63, 56, 52) 
    ->setLeft($avatar_image->getLeft() - 7) 
    ->setTop($avatar_image->getTop() - 8) 
    ->create(); 
 
$avatar_box2 = new Figure($avatar_image->getWidth() + 3, $avatar_image->getHeight() + 19); 
$avatar_box2 
    ->setBackgroundColor(79, 72, 67) 
    ->setLeft($avatar_image->getLeft() + 7) 
    ->setTop($avatar_image->getTop() - 9) 
    ->create(); 
 
$avatar_box3 = new Figure(120, 240); 
$avatar_box3 
    ->setBackgroundColor(63, 56, 52) 
    ->create(); 
 
$line_vertical = new Figure(600, 10); 
$line_vertical 
    ->setBackgroundColor(119, 99, 77) 
    ->setTop(240) 
    ->create(); 
 
$line_horizontal = new Figure(1, 240); 
$line_horizontal 
    ->setBackgroundColor(79, 72, 67) 
    ->setLeft(120) 
    ->create(); 
 
$canvas = new Canvas($canvas_figure); 
$canvas 
    ->append([ 
        $line_horizontal, 
        $avatar_box2, 
        $avatar_box3, 
        $avatar_box, 
        $avatar_image, 
        $about_text, 
        $twitter_text, 
        $line_vertical 
    ]) 
    ->setQuality(100) 
    ->toPNG() 
    ->draw() 
    ->save(__DIR__ . '/card.png'); 
 
 |