[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'));
}
}