Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 16.08.2012, 12:51
Профессор
Отправить личное сообщение для zebra Посмотреть профиль Найти все сообщения от zebra
 
Регистрация: 14.09.2011
Сообщений: 523

canvas обрезать часть рисунка
На канвасе выводится рисунок, как можно отрезать его часть + немного закруглить? Что-то нагуглить никак не могу ><
Изображения:
Тип файла: jpg canvs.jpg (6.8 Кб, 9 просмотров)
Ответить с цитированием
  #2 (permalink)  
Старый 16.08.2012, 13:30
Аватар для vadim5june
Студент
Отправить личное сообщение для vadim5june Посмотреть профиль Найти все сообщения от vadim5june
 
Регистрация: 30.04.2012
Сообщений: 1,113

Сообщение от zebra Посмотреть сообщение
На канвасе выводится рисунок, как можно отрезать его часть + немного закруглить? Что-то нагуглить никак не могу ><
отрезать просто-вот здесь
Маленький эффект
пример как часть из канваса вырезать-вставьте вместо текста рисунок-
а закруглить сложнее когда то делал но не найду
c картинкой есть некоторые ограничения-если загружать с локального диска не будет работать(защита)
надо на хостинге разместить

Последний раз редактировалось vadim5june, 16.08.2012 в 13:54.
Ответить с цитированием
  #3 (permalink)  
Старый 16.08.2012, 13:54
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

zebra,
По тупому вставить канву в div блок со скруглениями или тупо наложить этот div сверху, сделав у него широкие бордеры под окружающий фон
Ответить с цитированием
  #4 (permalink)  
Старый 16.08.2012, 14:14
Аватар для vadim5june
Студент
Отправить личное сообщение для vadim5june Посмотреть профиль Найти все сообщения от vadim5june
 
Регистрация: 30.04.2012
Сообщений: 1,113

<head>
        <meta endcoding="windows-1751" />
        <style type="text/css">
            body {
                margin:0px;
                padding:0px;
            }
            .sel {
                position:absolute;
                background-color:rgba(0, 30, 150, 0.3);
                border:1px solid rgba(30, 150, 0, 0.4);
            }
        </style>
        <script type="text/javascript">
            var ctx2;
var img1=new Image();
img1.onload=function(){ var ctx = document.getElementById("cnv").getContext('2d');
ctx.drawImage(img1,0,0,400,300);
};
img1.src='http://javascript.ru/files/u20687/7.jpg';
            function selection(elem, drags) {
                if ((typeof elem != "object") || (typeof drags != "object") || (((drags + "") != "[object HTMLDivElement]") && ((drags + "") != "[object]"))) {
                    console.log('selection error');
                    return;
                };
                drags.style.display = "none";
                elem.onmousedown = function (e) {
                    drags.style.display = "block";
                    var e = e || window.event;
                    selection.x = e.clientX;
                    selection.y = e.clientY;
                    drags.style.left = selection.x;
                    drags.style.top = selection.y;
                    selection.drags = drags;
                    selection.e = e;
                    elem.onmousemove = function (e) {
                        var e = e || window.event;
                        if (e.clientX - selection.x > 0) {
                            selection.drags.style.left = selection.x;
                            selection.drags.style.width = e.clientX - selection.x;
                        } else {
                            selection.drags.style.left = e.clientX;
                            selection.drags.style.width = selection.x - e.clientX;
                        }
                        if (e.clientY - selection.y > 0) {
                            selection.drags.style.height = e.clientY - selection.y;
                            selection.drags.style.top = selection.y;
                        } else {
                            selection.drags.style.top = e.clientY;
                            selection.drags.style.height = selection.y - e.clientY;
                        }
                    }
                }
                elem.onmouseup = function () {
                    var cnv2 = document.getElementById("cnv2");
                    cnv2.setAttribute('width', drags.offsetWidth);
                    cnv2.setAttribute('height', drags.offsetHeight);
                    ctx2.drawImage(document.getElementById("cnv"), drags.offsetLeft, drags.offsetTop, drags.offsetWidth, drags.offsetHeight, 0, 0, drags.offsetWidth, drags.offsetHeight);
                    drags.style.display = "none";
                    elem.onmousemove = function () {};
                    drags.style.width = 0;
                    drags.style.height = 0;
                };
            };
            window.onload = function () {
                var sel = document.getElementById("sel");
                selection(document, sel);
                var ctx = document.getElementById("cnv").getContext('2d');
                ctx2 = document.getElementById("cnv2").getContext('2d');
               
               
            }
        </script>
    </head>
    
    <body onselectstart='return false'>
        <canvas id=cnv width=400 height=140 style='border:1px solid black'></canvas>
        <canvas id=cnv2 width=100 height=120 style='border:1px solid black'></canvas>
        <div id="sel" class="sel"></div>
    </body>
Ответить с цитированием
  #5 (permalink)  
Старый 16.08.2012, 14:23
Профессор
Отправить личное сообщение для zebra Посмотреть профиль Найти все сообщения от zebra
 
Регистрация: 14.09.2011
Сообщений: 523

Закругление не выходит, хоть убейте >< http://jsfiddle.net/dDUC3/1512/
Ответить с цитированием
  #6 (permalink)  
Старый 16.08.2012, 14:36
Аватар для vadim5june
Студент
Отправить личное сообщение для vadim5june Посмотреть профиль Найти все сообщения от vadim5june
 
Регистрация: 30.04.2012
Сообщений: 1,113

Сообщение от zebra Посмотреть сообщение
Закругление не выходит, хоть убейте >< http://jsfiddle.net/dDUC3/1512/
вот ссылка как сделать rect с закруглениями-ее используйте
http://stackoverflow.com/questions/1...on-html-canvas
или гуглите canvas rounderrect

вот картинка с закруглением
http://jsfiddle.net/dDUC3/1514/

Последний раз редактировалось vadim5june, 16.08.2012 в 14:58.
Ответить с цитированием
  #7 (permalink)  
Старый 16.08.2012, 18:00
Профессор
Отправить личное сообщение для zebra Посмотреть профиль Найти все сообщения от zebra
 
Регистрация: 14.09.2011
Сообщений: 523

Наложил сверху прозрачный канвас с рисунком. Так проще. Всем спс
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вопросы по Canvas daima Общие вопросы Javascript 47 21.08.2012 20:11
Создание экземпляра Canvas не затрагивая HTML Tails Общие вопросы Javascript 2 09.03.2012 13:55
Проблемы с Canvas Verhal Общие вопросы Javascript 1 24.01.2012 21:51
Обрезать часть слов у всех <h3> при загрузке страницы swess Общие вопросы Javascript 9 14.01.2012 06:44
Добавить на canvas еще один елемент greengarlic Общие вопросы Javascript 5 22.09.2010 10:16