需求:
类似一些美图软件中的给照片加相框的操作
1. 用户选择照片,照片可以移动、可以放大缩小
2. 选择海报模版
3. 生成海报
最后生成的海报效果图类似下图
使用的技术栈是:vue+html2canvas+exif-js
具体思路和代码:
html部分,思路和逻辑在代码下面写着
<template>
<section>
<div id='posterwrap' v-show='!sharing' ref="wrap">
<div ref='posterwrap-inner' class="posterwrap-inner">
<p v-show='!temp.imgsrc' @click='chooseimg'></p>
<!-- 照片预览区 -->
<div class="preview-img-wrap">
<img @touchstart.prevent.stop='touchStart($event, 0)' @touchmove.prevent.stop='touchMove($event, 0, -1)' @touchend.prevent.stop='touchEnd($event, 0)' :style='{width: 99 * myphoto.scale + "%", height: 99 * myphoto.scale + "%", left: myphoto.x + "px", top: myphoto.y + "px"}' :src="myphoto.imgsrc" id='preview' alt="" ref="img" >
</div>
<!-- 选择的海报模版 -->
<img @touchstart.prevent.stop='touchStart($event, 0)' @touchmove.prevent.stop='touchMove($event, 0)' @touchend.prevent.stop='touchEnd($event, 0)' :src="temp" alt="" class="tag-item">
</div>
</div>
<!-- 海报模版区 -->
<div class="footer">
<