client_annotation_page/marker.html

99 lines
3.1 KiB
HTML
Raw Normal View History

2023-09-27 13:42:54 +00:00
<!DOCTYPE html>
<html>
<head>
<title>To user model</title>
<meta charset="UTF-8"/>
<link rel="stylesheet" type="text/css" href="css/styles.css"/>
<script src="https://unpkg.com/markerjs2/markerjs2.js"></script>
</head>
<body>
<div style="position: relative; display: flex; flex-direction: column; align-items: center; justify-content: center; padding-top: 50px;">
<!-- we are putting a copy of the original image under the result image so it's always annotation-free -->
<img id="sourceImage"
src="imgs/scene2.png"
style="max-width: 600px; max-height: 80%;"
crossorigin="anonymous"
/>
<img id="sampleImage"
src="imgs/scene2.png"
style="max-width: 600px; max-height: 100%; position: absolute;"
crossorigin="anonymous"
/>
</div>
<script>
let sourceImage, targetRoot, maState, _maState;
_maState = getCookie('maState');
if (getCookie('maState')) maState = _maState;
function setCookie(cname, cvalue, exdays) {
const d = new Date();
d.setTime(d.getTime() + (exdays * 24 * 60 * 60 * 1000));
let expires = "expires=" + d.toUTCString();
document.cookie = cname + "=" + cvalue + ";" + expires + ";path=/";
}
function getCookie(cname) {
let name = cname + "=";
let decodedCookie = decodeURIComponent(document.cookie);
let ca = decodedCookie.split(';');
for (let i = 0; i < ca.length; i++) {
let c = ca[i];
while (c.charAt(0) == ' ') {
c = c.substring(1);
}
if (c.indexOf(name) == 0) {
return c.substring(name.length, c.length);
}
}
return "";
}
// save references to the original image and its parent div (positioning root)
function setSourceImage(source) {
sourceImage = source;
targetRoot = source.parentElement;
}
function showMarkerArea(target) {
const markerArea = new markerjs2.MarkerArea(sourceImage);
markerArea.availableMarkerTypes = ["FrameMarker"];
markerArea.renderAtNaturalSize = true;
markerArea.renderImageType = 'image/jpeg';
markerArea.renderImageQuality = 0.9;
markerArea.settings.disableRotation = true;
// since the container div is set to position: relative it is now our positioning root
// end we have to let marker.js know that
markerArea.targetRoot = targetRoot;
markerArea.addEventListener("render", (event) => {
target.src = event.dataUrl;
// save the state of MarkerArea
maState = event.state;
});
markerArea.addEventListener("close", (event) => {
alert(11);
});
markerArea.show();
// if previous state is present - restore it
if (maState) {
markerArea.restoreState(maState);
}
}
setSourceImage(document.getElementById("sourceImage"));
const sampleImage = document.getElementById("sampleImage");
sampleImage.addEventListener("click", () => {
showMarkerArea(sampleImage);
});
</script>
</body>
</html>