PHP code example of abordage / laravel-og-images
1. Go to this page and download the library: Download abordage/laravel-og-images library . Choose the download type require .
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
abordage / laravel-og-images example snippets
use Abordage\LaravelOpenGraphImages\Facades\OpenGraphImages;
$text = 'The adventures first, explanations take such a dreadful time!';
$path = \Storage::put('first-og-image.png');
$opengraph = OpenGraphImages::make($text)->save($path);
// for <og:image>
OpenGraphImages::make($text)->save($path);
// or
OpenGraphImages::make($text, 'opengraph')->save($path);
// for <twitter:image>
OpenGraphImages::make($text, 'twitter')->save($path);
// for <vk:image>
OpenGraphImages::make($text, 'vk')->save($path);
// custom size
OpenGraphImages::makeCustom($text, 600, 400)->save($path);
$imageBlob = OpenGraphImages::make($text)->get();
$openGraphImage = OpenGraphImages::make($text, 'twitter');
$openGraphImage->save($path);
$imageSizes = $openGraphImage->getImageSizes();
// return [
// 'width' => 1200,
// 'height' => 600
// ];
class Page extends Model implements HasMedia
{
use InteractsWithMedia;
// ...
public function registerMediaCollections(): void
{
// ...
$this->addMediaCollection('opengraph')
->singleFile();
$this->addMediaCollection('twitter')
->singleFile();
}
// ...
}
$page = new Page();
$page->title = 'Your awesome title';
$page->save();
// generate image and attach to model
$image = OpenGraphImages::make($page->title);
$page->addMediaFromString($image->get())
->usingFileName(\Str::slug($page->title) . '.png')
->withCustomProperties($image->getImageSizes())
->toMediaCollection('opengraph');
$page = new Page();
$page->title = 'Your awesome title';
$page->save();
$presets = ['opengraph', 'twitter', 'vk'];
foreach ($presets as $preset) {
$image = OpenGraphImages::make($page->title, $preset);
$page->addMediaFromString($image->get())
->usingFileName(\Str::slug($page->title) . '-' . $preset . '.png')
->withCustomProperties($image->getImageSizes())
->toMediaCollection($preset);
}
$ogImageUrl = $page->getFirstMediaUrl('opengraph');
$twitterImageUrl = $page->getFirstMediaUrl('twitter');
$vkImageUrl = $page->getFirstMediaUrl('vk');
$config = [
/*
|--------------------------------------------------------------------------
| Background Color
|--------------------------------------------------------------------------
|
| Supported: HEX, RGB or RGBA format
|
*/
'background_color' => '#474761',
/*
|--------------------------------------------------------------------------
| Text Color
|--------------------------------------------------------------------------
|
| Supported: HEX, RGB or RGBA format
|
*/
'text_color' => '#eee',
/*
|--------------------------------------------------------------------------
| App Name
|--------------------------------------------------------------------------
|
| Set null to disable
|
| Supported: string or null
|
*/
'app_name' => config('app.name'),
/*
|--------------------------------------------------------------------------
| App Name Text Color
|--------------------------------------------------------------------------
|
| Supported: HEX, RGB or RGBA format
|
*/
'app_name_color' => '#eee',
/*
|--------------------------------------------------------------------------
| App Name Decoration Color
|--------------------------------------------------------------------------
|
| Supported: HEX, RGB or RGBA format
|
*/
'app_name_decoration_color' => '#fb3361',
/*
|--------------------------------------------------------------------------
| Text Alignment
|--------------------------------------------------------------------------
|
| Multiline text alignment
|
| Supported: "left", "center", "right"
|
*/
'text_alignment' => 'left',
/*
|--------------------------------------------------------------------------
| Text Sticky
|--------------------------------------------------------------------------
|
| Supported: "left", "center", "right"
|
*/
'text_sticky' => 'center',
/*
|--------------------------------------------------------------------------
| App Name Position
|--------------------------------------------------------------------------
|
| Supported: "top-left", "top-center", "top-right",
| "bottom-left", "bottom-center", "bottom-right"
|
*/
'app_name_position' => 'bottom-center',
/*
|--------------------------------------------------------------------------
| App Name Decoration Style
|--------------------------------------------------------------------------
|
| Set null to disable
|
| Supported: "line", "label", "rectangle", null
|
*/
'app_name_decoration_style' => 'line',
/*
|--------------------------------------------------------------------------
| Font Size
|--------------------------------------------------------------------------
|
*/
'font_size' => 55,
/*
|--------------------------------------------------------------------------
| App Name Font Size
|--------------------------------------------------------------------------
|
*/
'app_name_font_size' => 30,
/*
|--------------------------------------------------------------------------
| Text Font
|--------------------------------------------------------------------------
|
| If set null, will be used Preset Font (Roboto Regular)
|
| Supported: "absolute/path/to/your/font.ttf", null
|
*/
'font_path' => null,
/*
|--------------------------------------------------------------------------
| App Name Font
|--------------------------------------------------------------------------
|
| If set null, will be used Preset Font (Roboto Medium)
|
| Supported: "absolute/path/to/your/font.ttf", null
|
*/
'app_name_font_path' => null,
];
bash
php artisan vendor:publish --tag="og-images-config"