[Laravel4] 创建一个 占位图片 服务

演示图片地址:http://usr.im/100x100

使用Composer安装intervention/image库

composer require intervention/image:dev-master

编码

这里并未对生成的图片进程缓存处理,需要的可以自行加上。

// vim app/routes.php
<?php
Route::pattern('width', '\d+');
Route::pattern('height', '\d+');
Route::get('{width}x{height}', 'ImageHolderController@getIndex');
// vim app/controllers/ImageHolderController.php
<?php

class ImageHolderController extends BaseController {
    public function getIndex($width, $height)
    {
        $width = intval($width);
        $height = intval($height);
        if ($width > 1900 || $height > 900)
            App::abort(404);
        $fontSize = min(max(intval($width / 5), 12), 38);
        $image = Image::canvas($width, $height, '#CCCCCC')
                ->line('#B5B5B5', 0, 0, $width, $height)
                ->line('#B5B5B5', $width, 0, 0, $height)
                ->text($width . 'x' . $height, $width / 2, $height / 2, function ($font) use ($fontSize) {
                    $font->file(public_path('font/Georgia.ttf'));
                    $font->align('center');
                    $font->valign('middle');
                    $font->size($fontSize);
                    $font->color('#666666');
                });
        // 2014-07-19 17:46 修复图片格式不正确的问题,->encode('png')
        return Response::make($image->encode('png'), 200, array('Content-Type' => 'image/png'));
    }
}

标签: none

已有 2 条评论

  1. 很不错的一个小功能,不过博主用的是什么PHP框架呢?

添加新评论