• apiCloud 选择图片,选择视频,压缩图片


    选择视频或图片,只需要一个 UIMediaScanner 模板就可以实现,点击链接查看api

    https://docs.apicloud.com/Client-API/UI-Layout/UIMediaScanner

    textareaClick: [{
       text: '',
       img: [],
       realImg: [],
       realVideo: [],
       video: []
    }],

            
            var app = new Vue({
                el: "#app",
                data: function() {
                    return {
                        textareaClick: [{
                            text: '',
                            img: [],
                            realImg: [],
                            realVideo: [],
                            video: []
                        }],
                        token: ''
                    }
                },
                methods: {
              upload_image: function(index) {
                //选择图片与视频
                        var this_obj = this;
                        var UIMediaScanner = api.require('UIMediaScanner');
                        UIMediaScanner.open({
                            type: 'all', //视频与图片,all(图片和视频)picture(图片)video(视频)
                            column: 4,
                            classify: true,
                            max: 3,
                            sort: {
                                key: 'time',
                                order: 'desc'
                            },
                            texts: {
                                stateText: '已选择*项',
                                cancelText: '取消',
                                finishText: '完成'
                            },
                            styles: {
                                bg: '#fff',
                                mark: {
                                    icon: '',
                                    position: 'bottom_left',
                                    size: 20
                                },
                                nav: {
                                    bg: '#eee',
                                    stateColor: '#000',
                                    stateSize: 18,
                                    cancelBg: 'rgba(0,0,0,0)',
                                    cancelColor: '#000',
                                    cancelSize: 18,
                                    finishBg: 'rgba(0,0,0,0)',
                                    finishColor: '#000',
                                    finishSize: 18
                                }
                            },
                            scrollToBottom: {
                                intervalTime: -1
                            },
                            exchange: true,
                            rotation: true
                        }, function(ret) {
                            if (ret) {
                                if (ret.eventType == 'confirm') {
                                    this_obj.compress_img(ret.list, index);
                                }
                            }
                        });
                    },
                    compress_img: function(img_arr, arr_index) {
                //压缩图片
                        var UIMediaScanner = api.require('UIMediaScanner');
                        var imageFilter = api.require("imageFilter");
                        var temp_path1 = img_arr.shift();
                        temp_path = temp_path1.path;
                        var filename = Math.random() + '.jpg';
                        var this_obj = this;
                        var target_w = 500;
                        var type_play = temp_path1.suffix
                        if (api.systemType == "ios") {
                            UIMediaScanner.transPath({
                                path: temp_path
                            }, function(res, err) {
                                if (res.status) {
                                    if (type_play == 'mp4') {
                                        this_obj.textareaClick[arr_index].video.push(res.path);
                                    } else {
                                        imageFilter.getAttr({
                                            path: res.path
                                        }, function(ret, err) {
                                            if (ret.status) {
                                                if (ret.width < target_w) {
                                                    target_w = ret.width;
                                                }
                                                var original_w = ret.width;
                                                var original_h = ret.height;
                                                var scale = original_w / target_w;
                                                var target_h = Math.round(original_h / scale);
                                                imageFilter.compress({
                                                    img: res.path,
                                                    quality: 1,
                                                    size: {
                                                        w: target_w,
                                                        h: target_h
                                                    },
                                                    save: {
                                                        album: false,
                                                        imgPath: api.cacheDir + '/upload/',
                                                        imgName: filename
                                                    }
                                                }, function(ret, err) {
                                                    if (ret.status) {
                                                        this_obj.textareaClick[arr_index].img.push(api.cacheDir + '/upload/' + filename);
                                                        if (img_arr.length > 0) {
                                                            this_obj.compress_img(img_arr, arr_index);
                                                        }
                                                    }
                                                });
                                            }
                                        });
                                    }
                                } else {
                                    api.toast({
                                        msg: err
                                    });
                                }
                            })
                        } else {
                            if (type_play == 'mp4') {
                                this_obj.textareaClick[arr_index].video.push(temp_path);
                            } else {
                                imageFilter.getAttr({
                                    path: temp_path
                                }, function(ret, err) {
                                    if (ret.status) {
                                        if (ret.width < target_w) {
                                            target_w = ret.width;
                                        }
                                        var original_w = ret.width;
                                        var original_h = ret.height;
                                        var scale = original_w / target_w;
                                        var target_h = Math.round(original_h / scale);
                                        imageFilter.compress({
                                            img: temp_path,
                                            quality: 1,
                                            size: {
                                                w: target_w,
                                                h: target_h
                                            },
                                            save: {
                                                album: false,
                                                imgPath: api.cacheDir + '/upload/',
                                                imgName: filename
                                            }
                                        }, function(ret, err) {
                                            if (ret.status) {
                                                this_obj.textareaClick[arr_index].img.push(api.cacheDir + '/upload/' + 
    
    filename);
                                                if (img_arr.length > 0) {
                                                    this_obj.compress_img(img_arr, arr_index);
                                                }
                                            }
                                        });
                                    }
                                });
                            }
                        }
                    }
                
                          }
                    })                                 
    
    
    
     

    console.log(this_obj.textareaClick)可以查看这个数组

  • 相关阅读:
    实验三 进程调度模拟程序
    实验二作业调度模拟程序实验报告
    实验8
    实验七
    实验六
    实验五 数独游戏界面设置
    实验五
    实验四
    实验三
    实验二
  • 原文地址:https://www.cnblogs.com/gqx-html/p/8304083.html
Copyright © 2020-2023  润新知