博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
在GIF图片上打水印,图片合成
阅读量:6762 次
发布时间:2019-06-26

本文共 1503 字,大约阅读时间需要 5 分钟。

hot3.png

转自:

:请宝姐姐喝茶

素材:

宝钗

输入图片说明

下面几个库是必不可少的

endroid/qrcode //如果需要一个二维码的话        sybio/image-workshop        sybio/gif-creator        sybio/gif-frame-extractor

好,进入正题,直接用代码说话

setSize(100); //设置大小,单位像素$qr_resource = imagecreatefromstring($qrCode->writeString()); //生成一个二维码图片资源$qr_image = ImageWorkshop::initFromResourceVar($qr_resource); //设置一个二维码图层$image_info = getimagesize($background); //图片的长宽参数$tea = ImageWorkshop::initFromPath($tea_image); //喝茶图层//$tea = ImageWorkshop::initTextLayer('呵呵', 'simkai.ttf', 15); //假如希望在图片上写一行文字if (GifFrameExtractor::isAnimatedGif($background)) { //底图如果是gif $extractor = new GifFrameExtractor(); $frames = $extractor->extract($background, false); //gif图拆成帧,第二个参数只有对原图有万分保证,质量极佳的情况下才应该设置为true foreach ($frames as $frame) { //逐帧处理 $frame_layer = ImageWorkshop::initFromResourceVar($frame['image']); //帧图层 $frame_layer->resizeInPixel($image_info[0], $image_info[1], true); // 设置每一帧的高度宽度 $frame_layer->addLayerOnTop($tea, 0, 0, 'LB'); // 添加喝茶图层,位置距离左下角坐标为 0,0 $frame_layer->addLayerOnTop($qr_image, 0, 0, 'RB'); //在背景图层上叠加自定义二维码,距离右下角坐标为 0,0 $new_frames[] = $frame_layer->getResult(); //逐帧入栈 } $creator = new GifCreator(); $creator->create($new_frames, $extractor->getFrameDurations(), 0); //我们需要一直循环 $new_gif = $creator->getGif(); //将新的帧序列创建为新的GIF图片 $file_name = '请宝姐姐喝茶_'. time() . '.gif'; file_put_contents('images/target/' . $file_name, $new_gif); //简单粗暴的将图片字节写入文件}

打完收工

输入图片说明

 

 

 

转载于:https://my.oschina.net/osgrace/blog/1577464

你可能感兴趣的文章
4-python学习——数据操作
查看>>
Oracle函数
查看>>
Unity3D学习笔记第一课
查看>>
【redis使用全解析】常见运维操作
查看>>
hdu2377Bus Pass(构建更复杂的图+spfa)
查看>>
2015第29周三
查看>>
CCBValue
查看>>
C#一些知识点:委托和事件的区别
查看>>
linux修改挂载目录
查看>>
Cocos2d-js-v3.2 在 mac 上配置环境以及编译到 Andorid 的注意事项(转)
查看>>
android开源项目学习
查看>>
提升Mac os x 10.10+xcode6.1之后,Cocoapods发生故障的解决方案
查看>>
Developer Tool - 1. Text Tool and GNU/Linux Tool
查看>>
OAuth 2.0 安全案例回顾
查看>>
标准API使用小技巧
查看>>
jQuery Validate插入 reomte使用详细的说明
查看>>
科普:揭秘手机软件自启原理
查看>>
lintcode :搜索二维矩阵
查看>>
前端设计js+Tab切换可关闭+添加并自动判断是否已打开自动切换当前状态(转载)...
查看>>
for循环,如何结束多层for循环
查看>>