npetrovski / php5-image
此包已被废弃,不再维护。没有建议的替代包。
面向对象图像处理和操作库
v2.0.3
2015-05-31 21:47 UTC
Requires
- php: >=5.3.0
- ext-gd: *
Requires (Dev)
- phpunit/phpunit: 3.*
This package is not auto-updated.
Last update: 2020-09-18 20:40:03 UTC
README
PHP5 Image 是一个由 PHP 和 GD2 实现的图像操作的完整面向对象库。无需 imagick 扩展。
该项目目前提供 PNG、JPEG、GIF、PSD、ICO 图像文件类型的读取器,并输出所有 GD2 支持的类型。
要求
- PHP >=5.3
- GD2 扩展
示例
画布大小
$image = new Image\Canvas(dirname(__FILE__) . '/source/beach.jpg'); $image->fx('resize', 200) ->fx('crop', 0, 86) ->draw('border', 2, '000000') ->fx('canvassize', 0, 10, 10, 0) ->draw('watermark', dirname(__FILE__) . '/source/button.png', 'br'); $image->imagePng();
验证码
$image = new Image\Canvas(); $image->createImageTrueColor(206, 96, "FF0000"); // Primitives $background = new Image\Draw\Primitive("FFFFFF", 20); $background->line(20, 20, 80, 80) ->rectangle(100, 20, 180, 80) ->filledRectangle(150, 10, 170, 30) ->ellipse(10, 50, 20, 60) ->filledEllipse(140, 60, 160, 80) ->circle(200, 50, 30) ->spiral(100, 50, 100, 10); $image->attach($background); // Captcha text $captcha = new Image\Draw\Captcha("captcha"); $captcha->addTTFFont(dirname(__FILE__) . '/../fonts/blambotcustom.ttf'); $captcha->addTTFFont(dirname(__FILE__) . '/../fonts/adventure.ttf'); $captcha->addTTFFont(dirname(__FILE__) . '/../fonts/bluehigh.ttf'); $captcha->setTextSize(20) ->setSizeRandom(20) ->setAngleRandom(60) ->setTextSpacing(5) ->setTextColor("ffff00"); $image->attach($captcha); // Add border $image->draw('border', 1, 'bbbbbb') ->draw('border', 1, 'ffffff'); $image->imagePng();
着色
$image = new Image\Canvas(dirname(__FILE__) . '/source/red.jpg'); $image->fx('resize', 196) ->fx('crop', 0, 100) ->fx('colorize', 'ff0000', '00ff00'); $image->imagePng();
人脸检测器
$image = new Image\Canvas(dirname(__FILE__) . '/source/portrait.jpg'); $image->fx('resize', 198) ->fx('crop', 196, 96) ->helper('facedetector') ->apply() ->drawFaceRectangle(); $image->imagePng();
过滤器
$image = new Image\Canvas(dirname(__FILE__) . '/source/face.jpg'); $image->fx('resize', 198) ->fx('crop', 124, 94) ->fx('filter', IMG_FILTER_NEGATE) ->draw('border', 1, 'FFFFFF') ->draw('border', 1, 'BBBBBB') ->draw('border', 1, 'FFFFFF'); $image->imagePng();
高斯模糊
$image = new Image\Canvas(dirname(__FILE__) . '/source/seats.jpg'); $image->fx('resize', 250) ->fx('crop', 206, 96) ->fx('gaussian') ->draw('border', 1, 'BBBBBB') ->draw('border', 1, 'FFFFFF'); $image->imagePng();
ICO 解析器
$image = new Image\Canvas(dirname(__FILE__) . '/source/iPodnanoorange.ico'); $image->fx('resize', 196) ->fx('crop', 0, 100); $image->imagePng();
信息栏
$image = new Image\Canvas(dirname(__FILE__) . '/source/road.jpg'); $image->fx('resize', 250) ->fx('crop', 196, 70) ->draw('infobar', '[Filename]', 't', 'c', 'FFFFBB', '000000') ->fx('corners', 10, 10) ->draw('border', 5, '000000') ->fx('corners', 12, 12); $image->imagePng();
抖动
$image = new Image\Canvas(dirname(__FILE__) . '/source/planes.jpg'); $image->fx('resize', 250) ->fx('crop', 206, 96) ->fx('jitter') ->draw('border', 1, 'BBBBBB') ->draw('border', 1, 'FFFFFF'); $image->imagePng();
层
$image = new Image\Canvas(dirname(__FILE__) . '/source/rose.jpg'); $layer = new Image\Canvas(dirname(__FILE__) . '/source/cherry.png'); $image->fx('corners', 15, 15) ->fx('resize', 198) ->fx('crop', 196, 96) ->draw('layer', $layer, 0, 0, false); $image->imagePng();
PSD 解析器
$image = new Image\Canvas(dirname(__FILE__) . '/source/iPod.psd'); $image->fx('resize', 196) ->fx('crop', 0, 100); $image->imagePng();
二维码
$image = new Image\Canvas(250, 100); $image->draw('qrcode', 'https://github.com/npetrovski/php5-image'); $image->imagePng();
边框 + 角落
$image = new Image\Canvas(dirname(__FILE__) . '/source/icecream.jpg'); $image->fx('resize', 196) ->fx('crop', 166, 70) ->fx('corners', 15, 15) ->draw('border', 5, 'FF0000') ->fx('corners', 17, 17) ->draw('border', 5, 'FF8888') ->fx('corners', 20, 20) ->draw('border', 5, 'FFCCCC') ->fx('corners', 22, 22); $image->imagePng();
涟漪
$image = new Image\Canvas(dirname(__FILE__) . '/source/field.jpg'); $image->fx('resize', 200) ->fx('crop', 0, 90) ->fx('ripple') ->fx('corners', 13, 13) ->draw('border', 5, 'FFFFFF') ->fx('corners', 15, 15); $image->imagePng();
扫描线
$image = new Image\Canvas(dirname(__FILE__) . '/source/quay.jpg'); $image->fx('resize', 250) ->fx('crop', 206, 100) ->draw('scanline', 2, 'FFFFFF', 120, 110) ->fx('corners', 15, 15); $image->imagePng();
Sobel 边缘检测
$image = new Image\Canvas(dirname(__FILE__) . '/source/flowers.jpg'); $image->fx('resize', 196) ->fx('crop', 0, 100) ->fx('sobel'); $image->imagePng();
黑白
$image = new Image\Canvas(dirname(__FILE__) . '/source/car.jpg'); $image->fx('resize', 198) ->fx('crop', 156, 60) ->fx('blackandwhite') ->draw('border', 2, '000000') ->draw('border', 1, 'ffffff') ->draw('border', 17, '000000'); $image->imagePng();
平铺水印
$image = new Image_Image(dirname(__FILE__) . '/source/stamens.jpg'); $image->attach(new Image_Fx_Resize(196)); $image->attach(new Image_Fx_Crop(0,96)); $watermark = new Image_Draw_Watermark(new Image_Image(dirname(__FILE__) . '/source/watermark.png')); $watermark->setPosition("tile"); $image->attach($watermark); $image->attach(new Image_Draw_Border(2, "000000")); $image->imagePng();
真实阴影
$image = new Image\Canvas(dirname(__FILE__) . '/source/reflect.jpg'); $image->fx('resize', 206) ->fx('crop', 194, 88) ->fx('corners', 15, 15) ->draw('trueshadow', 5, "444444", array(1, 1, 1, 2, 2, 4, 4, 8, 4, 4, 2, 2, 1, 1, 1)); $image->imagePng();
香草
$image = new Image\Canvas(dirname(__FILE__) . '/source/hotel.jpg'); $image->fx('resize', 200) ->fx('crop', 0, 94) ->draw('border', 1, 'FFFFFF') ->draw('border', 1, 'BBBBBB') ->draw('border', 1, 'FFFFFF'); $image->imagePng();
修剪
$image = new Image\Canvas(200, 100, 'CCCCDD', 60); $star = new Image\Canvas(dirname(__FILE__) . '/source/star.png'); $star->draw('border', 1, '000000'); $trim = new Image\Canvas(dirname(__FILE__) . '/source/star.png'); $trim->fx('trim') ->draw('border', 1, '000000'); $image->fx('colorize', 'ff0000') ->draw('layer', $star, 20, 20) ->draw('layer', $trim, 100, 20); $image->imagePng();
vignette
$image = new Image\Canvas(dirname(__FILE__) . '/source/balloons.jpg'); $image->fx('resize', 250) ->fx('crop', 206, 100) ->fx('vignette', new Image\Canvas(dirname(__FILE__) . '/source/vignette.png')); $image->imagePng();
旋转 & 翻转
$image = new Image\Canvas(dirname(__FILE__) . '/source/apple.png'); $image->fx('rotate', 35) ->fx('flip', true, true) ->fx('resize', 100); $image->imagePng();
水印
$image = new Image\Canvas(dirname(__FILE__) . '/source/boat.jpg'); $image->fx('resize', 198) ->fx('crop', 196, 96); $wm_image = new Image\Canvas(dirname(__FILE__) . '/source/phpimage.png'); $wm_image->mid_handle = false; $watermark = new Image\Draw\Watermark($wm_image); $watermark->setPosition(0, 60); $image->attach($watermark); $image->draw('border', 2, "000000"); $image->imagePng();
贡献
欢迎贡献。在提交您的拉取请求之前,请注意以下指南。
- 遵循 PSR-2 编码规范。
- 为新的函数和新增功能编写测试。
许可
本库采用 MIT 许可协议 许可。
