|
<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> |