微信小程序照片裁剪

本文介绍了如何在微信小程序中使用canvas和movable-view组件封装一个比例裁剪照片的功能,无需额外插件。作者提供了组件及引用页的代码,并阐述了实现思路,即通过movable-view确定裁剪区域,动态调整元素尺寸以保持图片正确比例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前段时间用小程序的canvas、movable-area、movable-view封装了一个按比例裁剪照片的组件,无需引用任何插件。废话不多说,直接贴代码:
组件代码
1.cut_photo.json

{
  "component": true
}

2.cut_photo.wxml

<view>
  <canvas class="fyj_canvas" canvas-id="myCanvas" style="width:100%;height:{
  
  {canvasHeight}}px">
    <movable-area class="fyj_movable_area text-center hidden" style="width:100%;height:{
  
  {canvasHeight}}px;">
      <movable-view wx:if="{
  
  {src}}" style="width:{
  
  {cutWidth}}px;height:{
  
  {cutHeight}}px" class="fyj_movable_view"
        x="{
  
  {x}}"
        y="{
  
  {y}}"
        direction="all"
        bindchange="movableChange"
      ></movable-view>
      <image  class="fyj_photo" id="fyj_photo" src="{
  
  {src}}" mode="widthFix"></image>
    </movable-area>
  </canvas>
  <view style="margin-top:20rpx;padding:0 20rpx;">
    <button class="pull-left" type="warn" size="mini" bindtap="getPhoto">选择照片/拍照</button>
    <button class="pull-right" type="primary" size="mini" bindtap="cut">裁剪</button>
    <view class="clearfix"></view>
  </view>
</view>




3.cut_photo.js

const app = getApp()
Component({
  options: {
    //multipleSlots: true // 在组件定义时的选项中启用多slot支持
  },
  properties: {
    // 这里定义了innerText属性,属性值可以在组件使用时指定
    //宽高比
    aspectRatio: {
      
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值