Загружаем информацию в canvas из базы данных!
Есть такая задача для построения мини-онлайн-фоторедактора:
нужно загрузить в canvas последовательно фото и текст из базы данных. Получается, но текст всегда оказывается ниже картинки. Как избежать этого? И вообще, как управлять слоями в canvas? |
Цитата:
Если в один и тот же канвас загрузить и текст и картинку то взаимным положением легко манипулировать |
Цитата:
Взаиморасположение текста и картинки зависит от того, что раньше выведите. |
Цитата:
Там просто координаты задаются и картинке и тексту |
Цитата:
|
Цитата:
картинка выводится ctx.drawImage(img, x, y) -x y rкоординаты Текст выводится ctx.fillText(text,x,y)-x y rкоординаты |
Была похожая проблема, правда я использовал либу fabric.js.
Так вот, у меня при инициализации загружалось в канвас некоторое количество картинок. По идее они должны были загружаться по порядку, то есть в каком порядке они пришли в json-е - в таком и должны быть на холсте. На деле - те картинки которые загружались быстрее в DOM - оказывались на холсте раньше и соответсвенно путались позиции. Проблему решил таким хаком - на страничке создал картинку размером 1 пиксель. И собственно ее и грузил вместо необходимых картинок на холст, то есть получалось объекты занимали позицию в порядке очередности, а уже потом менял изображения загруженных объектов. Скорее всего у вас похожая проблема - текст оказывается ниже - потому что картинка еще не загрузилась в dom. Решение: сначала загрузить картинки в dom, а потом уже загружать все в канвас, либо сделать как я, сначала грузить картинку которая уже есть на странице, а потом подменить на свою |
Цитата:
Цитата:
Правильно. Я буду делать fillText после drawImage. Координаты никак не относятся к проблеме, которую изложил ТС |
Цитата:
|
Цитата:
Цитата:
Судя по всему они там и есть |
а вы по русски говорить можете? как ниже? по кокой оси?
по Y или по Z? ниже может быть как ниже по оси y ,так и перекрываться по оси z Цитата:
другой момент в том что нельзя обратится к пред слою,но ничего не мешает их эмулировать Цитата:
globalCompositeOperation |
Цитата:
|
Цитата:
Цитата:
Цитата:
|
Цитата:
она предназначена для вывода пересечения двух объектов а слои это наложение двух и более групп объектов |
Цитата:
Цитата:
Цитата:
Цитата:
|
Цитата:
Если у Вас свое собственное то не навязывайте его другим |
Цитата:
Цитата:
http://ru.wikipedia.org/wiki/%D0%A1%D0%BB%D0%BE%D0%B9 -я думаю, у вас пространства более чем, чтоб придумать "общепринятое" определение слоя Цитата:
|
Цитата:
Вы там сказали что то про то как можно элемент див повернуть в канвасе так как див в канвас никак не затащишь то я и ответил что аналогия дива это rect-и то и другое рисует пряяоугольники |
Цитата:
|
Цитата:
|
Цитата:
|
Цитата:
"ну поверни мне div и его любое содержимое в канве" |
Цитата:
|
Цитата:
|
vadim5june,
да уж блеснул так блеснул своим критинизмом ты у меня в карме... если ты сам не понимаешь что ты несёшь-тебе никто уже не поможет..... |
Цитата:
|
Цитата:
Цитата:
|
Цитата:
setNewImage = function(c_object, src) { var img = new Image(); img.src = src; // если просто сменить фон, то могут быть глюки, поэтому надо сперва загрузить картинку. img.onload = function() { c_object.setElement(img).setCoords(); // смена фона происходит здесь canvas.renderAll(); }; } здесь c_object - канвас элемент, canvas - холст на котором располагаются все элементы |
Часовой пояс GMT +3, время: 05:35. |