美文网首页
图片上传生成海报H5技术详解

图片上传生成海报H5技术详解

作者: EchoNULL | 来源:发表于2020-04-02 00:10 被阅读0次

我想很多经常做H5同学都会遇到过让用户上传照片的这种需求,那我这里给大家分享一些我常用的一些方法~废话不多时候,下面可以写一些干货,如果有更好的方法欢迎留言讨论!

首先,需要准备一些需要用到的东西。

第一个,腾讯tgideas团队发布过个image-editor移动端的插件,这个还是比较好用的,我也经常用这个来做移动端图片上传的一些功能,当然也有其他的一些插件,我也用过一些,但是在这里不作过多讨论,后面我会专门整理出来!我先把这个插件链接发出来,有需要的人可以去下载一下!戳这里!

第二个,就是安装一个PHP拓展 Imagick

基本准备工作已经做完,然后上代码!

1,引用js,HTML部分 只需要一个div和一个input就可以了。css 部分就省略了,主要说逻辑!

<script src="http://www.zeptojs.cn/zepto.js"></script> 

<script src="js/image-editor.js"></script>

<div id="container"> </div>

<input type="file" accept="image/*" id="up_img" class="up_img" value="">

2,js实例化

var eidtor = new mo.ImageEditor({

trigger: $('.up_img'),

container: $('#container'),

background:"none",

width:625,//自己改

height: 785, //自己改

stageX: $('#container')[0].offsetLeft,

}) 

3.图片用 canvas.toDataURL生成然后ajax上传,

canvas_img = canvas.toDataURL("image/jpeg"); 

这是前端部分的核心代码,当然每个项目需求不一样,其他的可能需要自己动手写~!

接下来就是PHP部分,需要可以的去查一下Imagick插件的说明。这是说一下常用的一些基本功能!

$bg = new Imagick();//实例化

$bg->readImage("background.png");//读取背景图片

$head_img = new Imagick(); //实例化

$head_img->readImage('headimg.png');//读取头像

$head_img->thumbnailImage(94,94); //生成缩略图尺寸

$head_img->roundCorners(47, 47);  //圆角 相当于css 里面的border-radius

$bg->compositeImage($head_img,imagick::COMPOSITE_OVER,30,46);//两张图融合

$new_file_mb=$user_dir.time().rand(10000,99999).".jpg";

$bg->writeImage($new_file_mb);

那如果想打印字在图片模板上面的话,就用下面的代码

$draw = new ImagickDraw();

$draw->setFillColor(new ImagickPixel('#E60113'));

$draw->setFontSize(60);

$draw->setFontWeight(600);

$draw->setFont('DAB.ttf');//必须下个字体、

$draw->settextencoding('utf-8');

$draw->annotation(575,85, "你想要打印的文字");

$bg->drawImage($draw);

基本核心思路的就是这些。有问题的话,可以私我~ 不过我建议按照这个方法,去先查一下相关的文档,然后加上自己的代码逻辑,大部分的这样H5都是可以实现的!

相关文章

网友评论

      本文标题:图片上传生成海报H5技术详解

      本文链接:https://www.haomeiwen.com/subject/mpxccxtx.html