wlyyui 文档 wlyyui 文档
首页
  • 介绍
  • 快速上手
  • 自定义主题
  • 基础组件

    • Color 色彩
    • Text 文本
    • Icon 图标
    • Button 按钮
    • Animation 动画
  • 布局组件

    • GridLayout 栅格布局
    • Grid 宫格
    • Panel 面板
    • Preview 表单预览
    • List 列表
    • Card 卡片
  • 表单组件

    • Calendar 日历
    • Cascader 级联选择器
    • Picker 选择器
    • DatePicker 日期时间选择器
    • Slider 滑块选择器
    • Form 表单校验
    • FormItem 表单项
    • Select 选择器
    • Input 输入框
    • InputNumber 数字输入框
    • Label 标签
    • Radio 单选框
    • Checkbox 复选框
    • Switch 开关
    • Textarea 多行输入框
    • Rate 评分
    • Upload 图片上传
    • UploadVideo 视频上传
    • SearchBar 搜索栏
  • 反馈类型组件

    • ActionSheet 上拉菜单
    • Toast 轻提示
    • Backdrop 遮罩层
    • Dialog 对话框
    • DropdownMenu 下拉菜单
    • Modal 模态框
    • Gallery 画廊
    • Landscape 压屏窗
    • LoadAni 加载动画
    • Spin 旋转动画
    • Message 消息提示
  • 导航类型组件

    • NavBar 导航栏
    • BubbleBox 气泡框
    • Seg_tab 分段器
    • Tabbar 标签栏
    • BottomNavbar 底部导航栏
    • Tabs 标签页
    • IndexList 索引列表
    • NoticeBar 通告栏
    • Sticky 吸顶容器
    • Steps 步骤条
    • Fab 浮动按钮
    • Drawer 抽屉
    • BottomPopup 底部弹出层
    • TopPopup 顶部弹出层
    • TimeAxis 时间轴
    • SideMenu 纵向选项卡
  • 展示组件

    • Badge 徽章
    • Alert 警告框
    • Avatar 头像
    • Tag 标签
    • Tag 标签
    • Progress 进度条
    • Circle 圆形进度条
    • CountDown 倒计时
    • Divider 分割线
    • LoadMore 加载更多
    • Empty 缺省页
    • Skeleton 骨架屏
    • Parse 富文本
  • 拓展组件

    • ShareSheet 分享面板
    • Result 结果页
    • FilterBar 筛选栏
    • SingleInput 单输入框
    • DigitalRoller 数字滚轮
    • DigitalKeyboard 数字键盘
    • LicensePlate 车牌号键盘
    • SwiperDot 轮播图指示点
    • CopyText 长按复制
    • CubicBezier 贝塞尔曲线
    • ImageCropper 图片裁剪
    • Drag 拖拽排序
    • RotateVerify 旋转验证码
    • SliderCaptcha 滑块拼图验证
资源
案例
GitHub (opens new window)
首页
  • 介绍
  • 快速上手
  • 自定义主题
  • 基础组件

    • Color 色彩
    • Text 文本
    • Icon 图标
    • Button 按钮
    • Animation 动画
  • 布局组件

    • GridLayout 栅格布局
    • Grid 宫格
    • Panel 面板
    • Preview 表单预览
    • List 列表
    • Card 卡片
  • 表单组件

    • Calendar 日历
    • Cascader 级联选择器
    • Picker 选择器
    • DatePicker 日期时间选择器
    • Slider 滑块选择器
    • Form 表单校验
    • FormItem 表单项
    • Select 选择器
    • Input 输入框
    • InputNumber 数字输入框
    • Label 标签
    • Radio 单选框
    • Checkbox 复选框
    • Switch 开关
    • Textarea 多行输入框
    • Rate 评分
    • Upload 图片上传
    • UploadVideo 视频上传
    • SearchBar 搜索栏
  • 反馈类型组件

    • ActionSheet 上拉菜单
    • Toast 轻提示
    • Backdrop 遮罩层
    • Dialog 对话框
    • DropdownMenu 下拉菜单
    • Modal 模态框
    • Gallery 画廊
    • Landscape 压屏窗
    • LoadAni 加载动画
    • Spin 旋转动画
    • Message 消息提示
  • 导航类型组件

    • NavBar 导航栏
    • BubbleBox 气泡框
    • Seg_tab 分段器
    • Tabbar 标签栏
    • BottomNavbar 底部导航栏
    • Tabs 标签页
    • IndexList 索引列表
    • NoticeBar 通告栏
    • Sticky 吸顶容器
    • Steps 步骤条
    • Fab 浮动按钮
    • Drawer 抽屉
    • BottomPopup 底部弹出层
    • TopPopup 顶部弹出层
    • TimeAxis 时间轴
    • SideMenu 纵向选项卡
  • 展示组件

    • Badge 徽章
    • Alert 警告框
    • Avatar 头像
    • Tag 标签
    • Tag 标签
    • Progress 进度条
    • Circle 圆形进度条
    • CountDown 倒计时
    • Divider 分割线
    • LoadMore 加载更多
    • Empty 缺省页
    • Skeleton 骨架屏
    • Parse 富文本
  • 拓展组件

    • ShareSheet 分享面板
    • Result 结果页
    • FilterBar 筛选栏
    • SingleInput 单输入框
    • DigitalRoller 数字滚轮
    • DigitalKeyboard 数字键盘
    • LicensePlate 车牌号键盘
    • SwiperDot 轮播图指示点
    • CopyText 长按复制
    • CubicBezier 贝塞尔曲线
    • ImageCropper 图片裁剪
    • Drag 拖拽排序
    • RotateVerify 旋转验证码
    • SliderCaptcha 滑块拼图验证
资源
案例
GitHub (opens new window)
  • 基础组件

    • Color 色彩
    • Text 文本
    • Icon 图标
    • Button 按钮
    • Animation 动画
  • 布局组件

    • GridLayout 栅格布局
    • Grid 宫格
    • Panel 面板
    • Preview 表单预览
    • List 列表
    • Card 卡片
  • 表单组件

    • Calendar 日历
    • Cascader 级联选择器
    • Picker 选择器
    • DatePicker 日期时间选择器
    • Slider 滑块选择器
    • Form 表单校验
    • FormItem 表单项
    • Select 选择器
    • Input 输入框
    • InputNumber 数字输入框
    • Label 标签
    • Radio 单选框
    • Checkbox 复选框
    • Switch 开关
    • Textarea 多行输入框
    • Rate 评分
    • Upload 图片上传
    • UploadVideo 视频上传
    • SearchBar 搜索栏
  • 反馈类型组件

    • ActionSheet 上拉菜单
    • Toast 轻提示
    • Backdrop 遮罩层
    • Dialog 对话框
    • DropdownMenu 下拉菜单
    • Modal 模态框
    • Gallery 画廊
    • Landscape 压屏窗
    • Loading 加载
    • LoadAni 加载动画
    • Spin 旋转动画
    • Message 消息提示
    • SwipeAction 滑动菜单
  • 导航类型组件

    • NavBar 导航栏
    • BubbleBox 气泡框
    • Seg_tab 分段器
    • Tabbar 标签栏
    • BottomNavbar 底部导航栏
    • Tabs 标签页
    • IndexList 索引列表
    • NoticeBar 通告栏
    • Sticky 吸顶容器
    • Steps 步骤条
    • Fab 浮动按钮
    • Drawer 抽屉
    • BottomPopup 底部弹出层
    • TopPopup 顶部弹出层
    • TimeAxis 时间轴
    • SideMenu 纵向选项卡
  • 展示组件

    • Badge 徽章
    • Alert 警告框
    • Avatar 头像
    • Tag 标签
    • DataTag 标签选择
    • Progress 进度条
    • Collapse 折叠面板
    • Circle 圆形进度条
    • CountDown 倒计时
    • Divider 分割线
    • LoadMore 加载更多
    • Empty 缺省页
    • Skeleton 骨架屏
    • Parse 富文本
  • 拓展组件

    • ShareSheet 分享面板
    • Result 结果页
    • FilterBar 筛选栏
    • SingleInput 单输入框
    • DigitalRoller 数字滚轮
    • DigitalKeyboard 数字键盘
    • LicensePlate 车牌号键盘
    • SwiperDot 轮播图指示点
    • CopyText 长按复制
    • CubicBezier 贝塞尔曲线
    • ImageCropper 图片裁剪
      • Drag 拖拽排序
      • SlideVerify 滑动验证码
      • RotateVerify 旋转验证码
      • SliderCaptcha 滑块拼图验证
    • 组件
    • 拓展组件
    Mr zhang
    2023-08-14
    目录

    ImageCropper 图片裁剪

    ImageCropper 图片裁剪,将图片按照预先设置裁剪比例进行裁剪。

    # 支持平台

    App(vue) App(nvue) H5 小程序
    ✓ ✓ ✓ ✓

    # 基本使用

    通过 src 属性设置需要裁剪的图片。

    通过 ref 属性来注册组件引用信息。注册完成后,我们可以通过this.$refs.XXX访问到对应的组件实例,并调用上面的实例方法。

    <template>
    	<view class="wui-wrap">
            <wui-image-cropper :src="srcUrl" ref="cropperRef"></wui-image-cropper>
            <view class="wui-cropper__tabbar">
                <text class="wui-text" @tap.stop="chooseImage">选择</text>
                <view class="flex items-center flex-1 flex-col" @tap.stop="rotate">
                    <wui-icon name="w-rotate" color="#fff" size="52"></wui-icon>
                </view>
                <text class="wui-text" @tap.stop="cutting">确定</text>
            </view>
        </view>
    </template>
    
    
     const srcUrl = ref<any>('');
      const urls = ref<any>('');
      const show = ref<any>(false);
      onLoad((options: any) => {
        console.log('aaaaa', options);
        if (options.src) {
          srcUrl.value = options.src;
        }
      });
      const hideGallery = () => {
        show.value = false;
      };
      const chooseImage = () => {
        uni.chooseImage({
          count: 1,
          sizeType: ['original', 'compressed'],
          sourceType: ['album', 'camera'],
          success: res => {
            srcUrl.value = res.tempFilePaths[0];
          },
        });
      };
      const cropperRef = ref<any>('');
      const rotate = () => {
        cropperRef.value.rotate();
      };
      const cutting = () => {
        if (cropperRef.value) {
          cropperRef.value.cutting(filePath => {
            console.log(filePath);
            // #ifndef MP-BAIDU
            uni.previewImage({
              urls: [filePath],
            });
            // #endif
    
            // #ifdef MP-BAIDU
            urls.value = [filePath];
            setTimeout(() => {
              show.value = true;
            }, 50);
            // #endif
          });
        }
      };
    
    .wui-cropper__tabbar {
    	/* #ifndef APP-NVUE */
    	display: flex;
    	z-index: 20;
    	position: relative;
    	/* #endif */
    	flex-direction: row;
    	align-items: center;
    	justify-content: space-between;
    	position: fixed;
    	height: 120rpx;
    	left: 0;
    	right: 0;
    	bottom: 0;
    	/* #ifdef APP-NVUE */
    	border-top: 0.5px solid #666;
    	/* #endif */
    }
    
    /* #ifndef APP-NVUE */
    .wui-cropper__tabbar::before {
    	content: ' ';
    	position: absolute;
    	top: 0;
    	left: 0;
    	right: 0;
    	height: 1px;
    	border-top: 1px solid #666;
    	transform: scaleY(0.5);
    	transform-origin: 0 0;
    	z-index: 21;
    }
    
    /* #endif */
    
    .wui-text {
    	/* #ifndef APP-NVUE */
    	display: flex;
    	/* #endif */
    	font-size: 32rpx;
    	font-weight: normal;
    	color: #fff;
    	flex: 1;
    	text-align: center;
    	justify-content: center;
    	align-items: center;
    	height: 80rpx;
    	line-height: 80rpx;
    	/* #ifdef H5 */
    	cursor: pointer;
    	/* #endif */
    }
    

    # Slots

    插槽名称 说明
    - -

    # Props

    属性名 类型 说明 默认值 平台差异说明
    src String 需要裁剪的图片地址 - -
    network Boolean 是否为网络图片,如果为网络图片需保证可以正常下载,切勿使用第三方图片 false -
    width Number, String 裁剪框宽度,单位px 280 -
    height Number, String 裁剪框高度,单位px 280 -
    round Boolean 是否为圆形裁剪框,需要将宽高设置一致 false Nvue端暂不支持设置为圆形裁剪框
    borderColor String 裁剪框边框颜色 #B2B2B2 -
    scaleRatio Number, String 生成的图片尺寸相对剪裁框的比例,值越大图片越大 2 -
    quality Number 图片的质量,取值范围为 (0, 1],不在范围内时当作1.0处理 0.8 -
    fileType String 裁剪后的图片类型,可选值:jpg/png png -

    # Events

    事件名 说明 回调参数
    - - -

    # Methods

    通过ref属性来注册组件引用信息。注册完成后,我们可以通过this.$refs.XXX访问到对应的组件实例,并调用上面的实例方法。

    方法名 说明 传入参数 回调参数
    rotate 旋转图片,目前仅支持90deg+旋转 - -
    cutting 裁剪图片,调用方法返回裁剪图 callback filPath:裁剪后图片,回调函数中返回
    CubicBezier 贝塞尔曲线
    Drag 拖拽排序

    ← CubicBezier 贝塞尔曲线 Drag 拖拽排序→

    Theme by Vdoing | Copyright © 2023-2023 Mr zhang | MIT License
    • 跟随系统
    • 浅色模式
    • 深色模式
    • 阅读模式