生成海报这个功能很实用,之前我们学过小程序生成海报的方法,今天我们来学h5生成海报。

基本原理:其实就是把你html+css写的样式转换成图片下载。

如何实现的

首先我们需要引入下面两个js插件

原理说明

首先使用 html2canvas 把你写的的样式转化成canvas画布

然后使用canvas2image.js 把画布转化为img图片。

使用方法

HTML代码

不怕你学不会
就怕你不想学
3分钟学会生成海报就这么简单
可以保存这个海报分享给朋友了

扫码关注

生成中...

上面就是海报里面的图片和文字资源,定位好位置

CSS代码

body {background-color: #000;}body img {display: block;}#picbox{ position: absolute;width: 100%; left: 0; top: 0; max-height: 100%;box-sizing: border-box;border: 4vw solid #e94b54;overflow: hidden;position: relative;       }#picbox img {width: 100%;}#picbox .t1{ left:3vw; top:3vw; width: 86vw; color:#fff; font-size: 5vw;}#picbox .t2{ left:3vw; bottom:3vw; width: 50vw; color:#fff; font-size: 3vw;}#picbox .eq{ right: 3vw; bottom:3vw; width: 20vw; text-align: center;}#picbox .eq p{font-size: 3vw; padding-top: 5px;}#shading { position: fixed; left: 0; top: 0; height: 100vh;z-index: 99; background-color: rgba(0,0,0,0.8);text-align: center; width: 100%; font-size: 3vw; color:#fff; display: none;}#shading p{font-size: 18px;padding-top: 50%;      }#picshow img {width: 100%;}

最后加上js

function gotoimg() {     $('#shading').show(0);  // 生成中提示文字     $('#picbox').show(0); // html海报模块var getPixelRatio = function(context) {     // 获取设备的PixelRatiovar backingStore = context.backingStorePixelRatio ||                  context.webkitBackingStorePixelRatio ||                  context.mozBackingStorePixelRatio ||                  context.msBackingStorePixelRatio ||                  context.oBackingStorePixelRatio ||                  context.backingStorePixelRatio || 1;return (window.devicePixelRatio || 1) / backingStore;          };var shareContent = $("#picbox")[0]; var width = shareContent.offsetWidth; var height = shareContent.offsetHeight; var canvas = document.createElement("canvas"); var context = canvas.getContext('2d'); var scale = getPixelRatio(context);    //将canvas的容器扩大PixelRatio倍,再将画布缩放,将图像放大PixelRatio倍。          canvas.width = width * scale;           canvas.height = height * scale;          canvas.style.width = width + 'px';          canvas.style.height = height + 'px';          context.scale(scale, scale);var opts = {scale: scale, canvas: canvas,width: width, height: height,dpi: window.devicePixelRatio          };          html2canvas(shareContent, opts).then(function (canvas) {              context.mozImageSmoothingEnabled = false;              context.webkitImageSmoothingEnabled = false;              context.msImageSmoothingEnabled = false;              context.imageSmoothingEnabled = false;var dataUrl = canvas.toDataURL('image/png', 1.0); //var dataUrl = canvas.toDataURL('image/png', 1.0).replace("data:image/png;base64,","");var newImg = document.createElement("img");              newImg.src =  dataUrl;              newImg.width = width;              newImg.height= height;              // 生成成功后,把图片地址传递到img标签              $("#picshow img").attr('src',dataUrl);              $('#picbox').hide(0);              $('#shading').hide(0);            });         }       // 运行生成海报       gotoimg();

大功告成!

注意:如果本地生成失败,需要传到空间,用url访问即可执行。

h5 img js 点击图片放大_5分钟学会h5生成图片海报!相关推荐

  1. h5 img js 点击图片放大_网页对应图片点击放大 html+js

    $(function() { $('img').click(function() { var _this = $(this);// 将当前的pimg元素作为_this传入函数 imgShow(&quo ...

  2. h5 img js 点击图片放大_H5实现移动端图片预览:手势缩放, 手势拖动,双击放大......

    查看示例效果: 一.功能介绍 图片预览主要有以下几个功能点组成:监听图片点击事件,进入图片预览模式 自定义手势事件, (双指缩放,滑动,双击...) 监听图片手势事件,通过 transform-mat ...

  3. html+js 点击图片放大、点击图片全屏

    html 点击图片放大,图片全屏,再点击关闭全屏,我这里直接整理成一个js,使用方便. 使用步骤: 1.引用 jq 2.引用 imgEnlarge.js. 3.没了. 直接上代码,这个是测试代码. & ...

  4. js实现点击图片放大效果,以及懒加载图片

    js实现点击图片放大效果,以及懒加载图片 近期有个后端管理页面小优化,原来的图片是点击才会去后端请求图片展示到前端,用dialog的方式展示,但是不太直观 存在两个问题 1.点击查看后,电子照片会变形 ...

  5. vue项目 一行js代码搞定点击图片放大缩小

    一行js代码搞定xue项目需要点击图片放大缩小,其实主要用的是用到了vue:class的动态切换,内容比较简单.一开始我把维护的需求想得太复杂了,和测试小姐姐聊了一下才反应过来. 两个月不到跟了四个项 ...

  6. Viewer.js点击按钮放大图片用法

    1.Viewer.js点击按钮放大图片用法 <div onclick="getHideBig('hide_img_weight1')" id="btn_img_we ...

  7. 点击图片放大缩小功能

    1.点击图片放大缩小的思路 图片部分: <table><div><img style="width:62px;height:83px;display:block ...

  8. jquery点击图片放大效果

    点击图片放大效果无非就是创建一个大容器,点击小图片获取图片路径存放到大容器里. 接下来看一下效果图 HTML结构 <img class="enlargeImg" width= ...

  9. jquery 点击图片放大,带上下一张,可通过滚动鼠标进行图片缩放

    <?php /*** Created by PhpStorm.* User: 28010* Date: 2022/1/17* Time: 13:50*** 1.这里图片的数据是从数据库里面查询取 ...

最新文章

  1. if(p == NULL)和 if(NULL == p)区别
  2. c++ssh连接_一步步使SSH连接您的github仓库
  3. 读javascript高级程序设计10-DOM
  4. Leetcode 剑指 Offer 57 - II. 和为s的连续正数序列 (每日一题 20210809)
  5. SlideringDrawer的使用(抽屉效果)
  6. 【SpringBoot】SpringBoot 操作 Excel 完整示例(含源码GitHub)
  7. CentOS 7 + nginx-1.12 + php-7.2 + MySQL-5.7
  8. 【Cef编译】 CefSharp编译失败,检测到“RuntimeLibrary”的不匹配项: 值“MT_StaticRelease”不匹配值“MD_DynamicRelease”...
  9. 【java】java Integer 缓存 一定是 -128~127 吗
  10. input标签中使输入文本向右偏移像素解决方案(亲测有效)
  11. 数据科学包9-pandas高级内容之数据IO
  12. nginx的location优先级
  13. 计算机应用离散数学,结合计算机应用的离散数学教学研究.pdf
  14. NOIP2018 复赛提高组一等奖获奖名单
  15. python 跨行字符串_python字符串结束的标志_python-7-字符串的操作_方法_format_列表的操作...
  16. uni保存canvas图片_UniApp 用canvas生成图片保存本地
  17. 20220814笔记
  18. 业务中台构建--业务驱动为核心的云原生体系建设思考
  19. ABP的一些特性 (Attribute)
  20. Windows 解决端口占用

热门文章

  1. form表单中method的get和post区别
  2. asp.net模糊查询存储过程
  3. 虚拟化的故事连载系列一
  4. MyEclipse6.0注册码算法代码,MyEclipse7.0注册码算法代码
  5. 网管网络布线之常用兵器谱
  6. (原创)datagrid数据导出到excel文件给客户端下载的几种方法
  7. Ubuntu12.04 安装vim出错
  8. python3 配置文件操作库 configparser 读取配置文件后 元组列表转字典
  9. golang 切片删除指定内容
  10. linux 开机启动 自启动 设置