canvasを使った簡単な画像エディターを作成。機能はリサイズのみ(リサイズの方法に誤りがある。最新の記事を下記に掲載。
» canvas画像をリサイズ : JavaScript
新しいエントリー
» HTML5で簡単なフォトエディターを作成 : JavaScript
» jsFiddle
<h1>PhotoEditor</h1> <div id="view"><canvas id="canvas" width="240" height="200"></canvas></div> <div id="tool"> WIDTH: <input type="text" id="width" size="5"><br /> HEIGHT: <input type="text" id="height" size="5"><br /> <button id="resize" disabled="disabled">RESIZE</button> <button id="clear" disabled="disabled" size="5">CLEAR</button> </div>
<h1>view {</h1> <pre><code>margin-right: 20px; float: left; width: 320px; height: 240px; background: #EEE; border: 3px dotted #DDD; </code></pre> }
/** * photoeditor - v0.0.1 beta - 2012-04-30 * http://www.info-town.jp * * Copyright (c) 2012 Sawai Hiroshi */ // 下記のサイトを参考にしている。 // http://www.programmingmat.jp/webhtml_lab/canvas_image.html // photoeditor aplication top level object var photoeditor = {}; (function() { <pre><code>var view = $('#view').get(0), canvas = $('#canvas').get(0), clear = $('#clear').get(0), context = canvas.getContext('2d'); photoeditor.image = new Image(); /** * file open */ // drag event handler view.ondragover = function(event) { event.preventDefault(); }; // read file and display image data to canvas view.ondrop = function(event) { var file, reader; if (!event.dataTransfer.files.length) { return false; } file = event.dataTransfer.files[0]; if (!/^image/(png|jpeg|gif)$/.test(file.type)) { return false; } reader = new FileReader(); reader.onload = function() { photoeditor.image.onload = function() { context.drawImage(photoeditor.image, 0, 0); // set image data to canvas }; photoeditor.image.src = reader.result; }; reader.readAsDataURL(file); // read image event.preventDefault(); }; /** * image edit */ // button active if Canvas and ImageData is usable if (canvas.getContext && canvas.getContext('2d').createImageData) { $('#clear').removeAttr('disabled'); $('#resize').removeAttr('disabled'); context = canvas.getContext('2d'); } function _clear() { context.clearRect(0, 0, $(view).width(), $(view).height()); } // clear canvas (function() { $(clear).click(_clear); }()); // resize (function() { $('#resize').click(function() { var width = $('#width').val(), height = $('#height').val(); _clear(); context.drawImage(photoeditor.image, 0, 0, width, height); }); }()); </code></pre> }());
No comments yet.
改行と段落タグは自動で挿入されます。
メールアドレスは表示されません。