File size: 4,370 Bytes
a8eb386
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
<div class="col-md-12">
    <div class="card" style="width: 14rem">
        <img id="selected-image{{ label }}" src="{{ url_for('static', filename='images/placeholder-image.png')}}" class="card-img-top" alt="...">
        <div class="card-body">
            <input id="image-selector{{ label }}" type="file">
            <p class="card-text">选择图片请点击👆</p>
        </div>
        <ul class="list-group list-group-flush">
            <li class="list-group-item">品种: <span id="species{{ label }}"></span></li>
            <li class="list-group-item">健康状态: <span id="condition{{ label }}"></span></li>
            <li class="list-group-item">置信度: <span id="value{{ label }}"></span></li>
        </ul>
        <div class="text-center card-body">
            <div class="btn-group me-2">
                <button id="predict{{ label }}" type="button" class="btn btn-sm btn-outline-secondary">识别</button>
                {% if current_user.is_visitor %}
                    <button type="button" class="btn btn-sm btn-outline-secondary disabled" aria-disabled="true">反馈</button>
                {% else %}
                    <button type="button" class="btn btn-sm btn-outline-secondary" onclick="window.location.href='{{ url_for('feedback') }}'">反馈</button>
                {% endif %}
            </div>
        </div>
    </div>
</div>
<script src="/static/js/jquery.min.js"></script>
<script>
    {
        let base64Image
        $("#image-selector{{ label }}").change(function() {
            let reader = new FileReader();
            reader.onload = function(e) {
                let dataURL = reader.result;
                if(/image/.test($("#image-selector{{ label }}")[0].files[0].type)) {
                    var typeOfUpload = $("#image-selector{{ label }}")[0].files[0].type
                    $('#selected-image{{ label }}').attr("src", dataURL);
                    if (typeOfUpload === "image/jpeg") { // jpg jpeg jfif
                        base64Image = dataURL.replace("data:image/jpeg;base64,", "");
                    }else if (typeOfUpload === "image/png"){
                        base64Image = dataURL.replace("data:image/png;base64,", "");
                    }else if (typeOfUpload === "image/bmp"){
                        base64Image = dataURL.replace("data:image/bmp;base64,", "");
                    }else {
                        alert("not known")
                        return
                    }
                }else{
                    var noimage = new bootstrap.Modal(document.getElementById('noimage'), {})
                    noimage.show()
                    return
                }

                console.log($("#image-selector{{ label }}")[0].files[0].name);
            }
            reader.readAsDataURL($("#image-selector{{ label }}")[0].files[0]);
            $("#species").text("");
            $("#condition").text("");
            $("#value").text("");
        });
        $("#predict{{ label }}").click(function(){
            let message = {
                value: "{{label}}",
                image: base64Image
            };
            if(typeof(message['image']) != "undefined") {
                if("{{current_user.is_visitor}}"==="True"){
                    $.post("{{ url_for('predict_for_visitor') }}", JSON.stringify(message), function(response){
                        $("#species{{ label }}").text(response.prediction.species);
                        $("#condition{{ label }}").text(response.prediction.condition);
                        $("#value{{ label }}").text(response.prediction.value);
                        {#console.log(response);#}
                    });
                }else{
                    $.post("{{ url_for('predictbykind') }}", JSON.stringify(message), function(response){
                        $("#species{{ label }}").text(response.prediction.species);
                        $("#condition{{ label }}").text(response.prediction.condition);
                        $("#value{{ label }}").text(response.prediction.value);
                        {#console.log(response);#}
                    });
                }
            }else{
                var noimage = new bootstrap.Modal(document.getElementById('noimage'), {})
                noimage.show()
                return
            }
        });
    }
</script>