0

我正在使用Croppie裁剪和上传图像。一切正常,除了我无法在上传之前设置默认图像。如果有人提供帮助,我将不胜感激:

这是我的javascript代码:

function demoUpload() {
        var $uploadCrop;

        function readFile(input) {
            if (input.files && input.files[0]) {
                var reader = new FileReader();

                reader.onload = function (e) {
                    $('.upload-demo').addClass('ready');
                    $uploadCrop.croppie('bind', {
                        url: e.target.result
                    }).then(function(){
                        console.log('jQuery bind complete');
                    });

                }

                reader.readAsDataURL(input.files[0]);
            }
            else {
                swal("Sorry - you're browser doesn't support the FileReader API");
            }
        }

        $uploadCrop = $('#upload-demo').croppie({
            viewport: {
                width: 300,
                height: 300,
                type: 'rawcanvas'
            },

        });




        $('#upload').on('change', function () { readFile(this); });

        $('.upload-result').on('click', function (ev) {
            $uploadCrop.croppie('result', {
                type: 'canvas',
                size: 'viewport'
            }).then(function (resp) {
                popupResult({
                    src: resp
                });


  $uploadCrop.croppie('bind', {
        url: resp
    });




                // $('.cr-image').attr('src',resp).removeAttr('style');
                 //$('.cr-image').attr('style','width:300px');
                 //$('.cr-image').attr('aria-valuenow','0.1563');


                $('.image_cropped').val(resp);


                //$('#upload-demo').html('<img src="'+resp+'">');

            });
        });
    }

演示图片:

在此处输入图像描述

我用谷歌搜索了很多,但找不到解决方案。Croppie 文档对我也不起作用。:(谢谢

4

4 回答 4

1

根据文档,没有设置默认图像的选项。所以我发现的解决方法是在加载时设置默认图像并在用户上传图像时替换它。

var isDefaultImage = true;
var logo = "/content/img/missing-image.jpg";

function readFile(input) {
    if (input.files && input.files[0]) {
        var reader = new FileReader();
        reader.onload = function (e) {
        partnerLogo.croppie('bind', {
            url: e.target.result
        });
        $('#upload-container').addClass('ready');
        }
        reader.readAsDataURL(input.files[0]);
    }
}

partnerLogoCropper = $('#upload-container').croppie({
    viewport: {
        width: 250,
        height: 150,
        type: 'square'
    },
    boundary: {
        width: 300,
        height: 200
    },
    url: logo
 });

$('#upload').on('change', function () {
    readFile(this);
});

$('.upload-result').on('click', function (ev) {
    // checking if it is the default image and user hasn't uploaded any new image
    if (!$('#upload-container').hasClass('ready') && isDefaultImage){
        alert("NOT UPLOADED AND DEFAULT IMAGE IS LOADED");
    }
});
于 2021-09-15T05:17:45.283 回答
0

如果你只显示图像而不是你可以设置背景图像。

于 2018-02-22T11:25:42.457 回答
0

在 html 示例中将 src 添加到您的图像标签中:

<img src="/default_img.jpg"/>

或者您也可以通过 JQuery Example 添加它:

$("#pic1").attr("src", "/image_path/default_img.jpg");

当您通过 javaScript 添加/上传新的裁剪图像时,它将替换您的默认图像。

于 2018-02-22T11:33:34.413 回答
0
$uploadCrop = $('#upload-demo').croppie({

        url:'anonymous.png'

        viewport: {
            width: 300,
            height: 300,
            type: 'rawcanvas'
        },

    });

添加 url:'anonymous.png' 以选择默认图像

于 2019-11-10T12:27:54.780 回答