267 lines
		
	
	
		
			6.9 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
			
		
		
	
	
			267 lines
		
	
	
		
			6.9 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
<!doctype html>
 | 
						|
<html lang="ja">
 | 
						|
 | 
						|
<head>
 | 
						|
  <title>Adobe Photo Editor - TheDesk</title>
 | 
						|
  <meta content="width=device-width,initial-scale=1.0" name="viewport">
 | 
						|
  <link href="./css/materialize.css" type="text/css" rel="stylesheet">
 | 
						|
  <link href="./css/themes.css" type="text/css" rel="stylesheet">
 | 
						|
  <link href="./css/master.css" type="text/css" rel="stylesheet">
 | 
						|
  <link href="./css/auth.css" type="text/css" rel="stylesheet">
 | 
						|
  <link href='./css/font-awesome.css' rel='stylesheet' type='text/css'>
 | 
						|
  <link href='./css/tl.css' rel='stylesheet' type='text/css'>
 | 
						|
  <link href='./css/userdata.css' rel='stylesheet' type='text/css'>
 | 
						|
  <link href="https://fonts.googleapis.com/icon?family=Material+Icons|Open+Sans:300" rel="stylesheet">
 | 
						|
  <style>
 | 
						|
    #cb-drag {
 | 
						|
      margin-bottom: 8px;
 | 
						|
      padding: 24px 0;
 | 
						|
      text-align: center;
 | 
						|
    }
 | 
						|
 | 
						|
    #cb-drag p {
 | 
						|
      font-weight: bold;
 | 
						|
      text-align: center;
 | 
						|
    }
 | 
						|
 | 
						|
    #cb-file {
 | 
						|
      cursor: pointer;
 | 
						|
    }
 | 
						|
 | 
						|
    #cb-display {
 | 
						|
      margin-bottom: 0;
 | 
						|
    }
 | 
						|
 | 
						|
    #cb-display p {
 | 
						|
      margin-top: 8px;
 | 
						|
      margin-bottom: 0;
 | 
						|
      line-height: 1.4;
 | 
						|
    }
 | 
						|
 | 
						|
    .cb-div {
 | 
						|
      padding: 16px;
 | 
						|
      margin-bottom: 8px;
 | 
						|
    }
 | 
						|
 | 
						|
    .cb-image {
 | 
						|
      cursor: pointer;
 | 
						|
    }
 | 
						|
  </style>
 | 
						|
  <meta charset="utf-8">
 | 
						|
</head>
 | 
						|
 | 
						|
<body id="mainView">
 | 
						|
  <script type="text/javascript" src="./js/common/jquery.js"></script>
 | 
						|
  <script type="text/javascript" src="./js/platform/first-not-view.js"></script>
 | 
						|
  <script type="text/javascript" src="./js/common/materialize.js"></script>
 | 
						|
  <script type="text/javascript" src="./js/ui/tips.js"></script>
 | 
						|
  <script type="text/javascript" src="./js/common/time.js"></script>
 | 
						|
  <script type="text/javascript" src="./js/common/modal.js"></script>
 | 
						|
  <div>
 | 
						|
    <div id="cb-drag">
 | 
						|
      <p>ここに画像ファイルをドラッグし、画像をクリックしてください。</p>
 | 
						|
      <input type="file" id="cb-file">
 | 
						|
    </div>
 | 
						|
    <div id="cb-display"></div>
 | 
						|
  </div>
 | 
						|
  <script type="text/javascript" src="https://dme0ih8comzn4.cloudfront.net/imaging/v2/editor.js"></script>
 | 
						|
  <script type="text/javascript">
 | 
						|
 | 
						|
    var dragAndDrop = (function (window, document) {
 | 
						|
 | 
						|
      "use strict";
 | 
						|
 | 
						|
      var drag = document.getElementById("mainView");
 | 
						|
      var disp = document.getElementById("cb-display");
 | 
						|
      var file = document.getElementById("cb-file");
 | 
						|
 | 
						|
      function makeView(data) {
 | 
						|
 | 
						|
        var div, img, customEvent;
 | 
						|
        var metaData = "<p>■ファイル名: <b>" + data.name + "</b><br>■容量: <b>" + data.size + "</b>バイト</p>";
 | 
						|
 | 
						|
        div = document.createElement("div");
 | 
						|
        div.setAttribute("class", "cb-div");
 | 
						|
 | 
						|
        img = document.createElement("img");
 | 
						|
        img.src = data.url;
 | 
						|
        img.setAttribute("class", "cb-image");
 | 
						|
        img.style.maxWidth = "100%";
 | 
						|
        img.style.height = "auto";
 | 
						|
 | 
						|
        div.appendChild(img);
 | 
						|
        img.insertAdjacentHTML("afterend", metaData);
 | 
						|
        disp.appendChild(div);
 | 
						|
 | 
						|
        customEvent = document.createEvent("HTMLEvents");
 | 
						|
        customEvent.initEvent("makeView", true, false);
 | 
						|
        div.dispatchEvent(customEvent);
 | 
						|
 | 
						|
      }
 | 
						|
 | 
						|
      function readImage(e) {
 | 
						|
 | 
						|
        var f = (e.dataTransfer) ? e.dataTransfer.files : e.target.files;
 | 
						|
 | 
						|
        for (var i = 0, l = f.length; i < l; i++) {
 | 
						|
 | 
						|
          var reader = new FileReader();
 | 
						|
 | 
						|
          reader.onload = (function (f) {
 | 
						|
 | 
						|
            var imageData = {};
 | 
						|
 | 
						|
            return function (evt) {
 | 
						|
 | 
						|
              if (f.type === "image/gif" || f.type === "image/png" || f.type === "image/jpeg") {
 | 
						|
 | 
						|
                imageData.type = f.type;
 | 
						|
                imageData.name = f.name;
 | 
						|
                imageData.size = f.size;
 | 
						|
                imageData.date = f.lastModifiedDate.toLocaleDateString();
 | 
						|
                imageData.url = evt.target.result;
 | 
						|
                makeView(imageData);
 | 
						|
 | 
						|
              } else {
 | 
						|
                return;
 | 
						|
              }
 | 
						|
 | 
						|
            };
 | 
						|
 | 
						|
          })(f[i]);
 | 
						|
 | 
						|
          reader.readAsDataURL(f[i]);
 | 
						|
 | 
						|
        }
 | 
						|
 | 
						|
      }
 | 
						|
 | 
						|
      function dragFiles() {
 | 
						|
 | 
						|
        drag.addEventListener("drop", function (e) {
 | 
						|
          e.stopPropagation();
 | 
						|
          e.preventDefault();
 | 
						|
          readImage(e);
 | 
						|
        }, false);
 | 
						|
 | 
						|
        drag.addEventListener("dragover", function (e) {
 | 
						|
          e.stopPropagation();
 | 
						|
          e.preventDefault();
 | 
						|
        }, false);
 | 
						|
 | 
						|
      }
 | 
						|
 | 
						|
      function uploadFiles() {
 | 
						|
 | 
						|
        file.addEventListener("change", function (e) {
 | 
						|
          readImage(e);
 | 
						|
        }, false);
 | 
						|
 | 
						|
      }
 | 
						|
 | 
						|
      return {
 | 
						|
        init: function () {
 | 
						|
          dragFiles();
 | 
						|
          uploadFiles();
 | 
						|
        }
 | 
						|
      };
 | 
						|
 | 
						|
    })(this, this.document);
 | 
						|
 | 
						|
    var photoEditor = (function (window, document) {
 | 
						|
 | 
						|
      "use strict";
 | 
						|
 | 
						|
      var featherEditor = new Aviary.Feather({
 | 
						|
        apiKey: "ffee425017ab44b18ce95dab98a5cdc1",
 | 
						|
        onSave: function (imageID, newURL) {
 | 
						|
          var img1 = document.getElementById(imageID);
 | 
						|
          img1.src = newURL;
 | 
						|
          var electron = require("electron");
 | 
						|
          var ipc = electron.ipcRenderer;
 | 
						|
          ipc.send('bmp-image', [newURL, 0]);
 | 
						|
          window.close();
 | 
						|
        }
 | 
						|
      });
 | 
						|
 | 
						|
      function clearImage() {
 | 
						|
        this.parentNode.style.display = "none";
 | 
						|
      }
 | 
						|
 | 
						|
      function launchEditor(id, src) {
 | 
						|
        featherEditor.launch({
 | 
						|
          image: id,
 | 
						|
          url: src
 | 
						|
        });
 | 
						|
        return false;
 | 
						|
      }
 | 
						|
 | 
						|
      function editPhoto() {
 | 
						|
        var id = this.getAttribute("id");
 | 
						|
        var src = this.getAttribute("src");
 | 
						|
        launchEditor(id, src);
 | 
						|
      }
 | 
						|
 | 
						|
      function makeButton() {
 | 
						|
        var button = document.createElement("button");
 | 
						|
        button.setAttribute("style",
 | 
						|
          "width: 64px;"
 | 
						|
          + " line-height: 24px;"
 | 
						|
          + " background-color: #37474F;"
 | 
						|
          + " color: #fff;"
 | 
						|
          + " border: none;"
 | 
						|
          + " cursor: pointer;"
 | 
						|
          + " border-radius: 2px;"
 | 
						|
          + " font-size: 14px;"
 | 
						|
          + " position: absolute;"
 | 
						|
          + " text-align: center;"
 | 
						|
          + " top: 16px;"
 | 
						|
          + " right: 8px;"
 | 
						|
          + " padding: 0;"
 | 
						|
          + " z-index: 1000;"
 | 
						|
        );
 | 
						|
        button.innerHTML = "削除";
 | 
						|
        return button;
 | 
						|
      }
 | 
						|
 | 
						|
      function listener() {
 | 
						|
 | 
						|
        var disp = document.getElementById("cb-display");
 | 
						|
 | 
						|
        disp.addEventListener("makeView", function () {
 | 
						|
 | 
						|
          var image = document.querySelectorAll(".cb-image");
 | 
						|
          var button = [];
 | 
						|
 | 
						|
          for (var i = 0, l = image.length; i < l; i++) {
 | 
						|
 | 
						|
            button[i] = makeButton();
 | 
						|
            image[i].setAttribute("id", "cb-image_" + i);
 | 
						|
            image[i].parentNode.style.position = "relative";
 | 
						|
            image[i].parentNode.appendChild(button[i]);
 | 
						|
 | 
						|
            button[i].addEventListener("click", clearImage, false);
 | 
						|
            image[i].addEventListener("click", editPhoto, false);
 | 
						|
          }
 | 
						|
 | 
						|
        }, false);
 | 
						|
 | 
						|
      }
 | 
						|
 | 
						|
      return {
 | 
						|
        init: function () {
 | 
						|
          listener();
 | 
						|
        }
 | 
						|
      };
 | 
						|
 | 
						|
    })(this, this.document);
 | 
						|
 | 
						|
    dragAndDrop.init();
 | 
						|
    photoEditor.init();
 | 
						|
  </script>
 | 
						|
 | 
						|
  <script type="text/javascript" src="./js/ui/theme.js"></script>
 | 
						|
  <script type="text/javascript" src="./js/platform/end.js"></script>
 | 
						|
</body>
 | 
						|
 | 
						|
</html> |