Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 23.03.2013, 03:42
Аватар для Mike_Kharkov
Кандидат Javascript-наук
Отправить личное сообщение для Mike_Kharkov Посмотреть профиль Найти все сообщения от Mike_Kharkov
 
Регистрация: 04.01.2012
Сообщений: 143

Нестандартные шрифты на холсте Canvas.
Всем привет.
Недавно начал экспериментировать(в первые для себя) с различными манипуляциями над тегом Canvas и задался одним вопросом:
Можно ли как то отображать на холсте нестандартные шрифты?(при условии, что они заранее не установлены на компьютере естественно.)
(Не используя картинки!)
Можно ли как то задействовать в этом плане сервис Cufon?
Если да - то как именно?
(Имею ввиду как именно все это дело подключать? Это же не элементы dom дерева, насколько я понимаю?)
Возможно так же существует какая то альтернатива в этом плане?
P.S. Заранее благодарен за ответ..
Ответить с цитированием
  #2 (permalink)  
Старый 23.03.2013, 05:58
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Сообщение от Mike_Kharkov
Можно ли как то задействовать в этом плане сервис Cufon?
Думаю можно. Он ведь создает js-объект на основе шрифта если правильно помню. Можно поковыряться в исходниках cufon и разобраться как можно писать текст имея такой шрифт.
Но возможно есть и проще решения. Кстати, а разве писать подключенными через @font-face шрифтами нельзя?
Ответить с цитированием
  #3 (permalink)  
Старый 23.03.2013, 07:23
Аватар для Mike_Kharkov
Кандидат Javascript-наук
Отправить личное сообщение для Mike_Kharkov Посмотреть профиль Найти все сообщения от Mike_Kharkov
 
Регистрация: 04.01.2012
Сообщений: 143

Сообщение от danik.js Посмотреть сообщение
Кстати, а разве писать подключенными через @font-face шрифтами нельзя?
Пробовал - но лично у меня подключить не получилось.
(Хотя при подключении к другим блокам всё работает нормально. Если с винта подгружать.)
Вот пример:
В самой рамке находится canvas(к шрифту попытался подключить оформление через font-face.) а с лева от неё для примера тег span также c подключенными через font-face шрифтами.
http://webmaster.ayrveda.ru/fonts2/canvas.html
Правда сейчас на хостинг файл закинул и увидел что всё совсем по другому смотрится..
В каждом браузере по разному.
Но на холсте сами шрифты(именно в канвасе) пытаются отображаться только в хроме! И только только после неоднократной перезагрузки страницы.. (хотя с компа ничего не отображается на холсте. Только левый блок со спаном работает в норме.)
В мазилле + ie наоборот с компа Span в норме - но с хостинга не работает..
P.S. Возможно причины в путях - но перепробовал вроде все варианты.
Хотя тоже самое происходит и с демо версией шрифта.
http://webmaster.ayrveda.ru/fonts2/orbitronio-demo.html
(Значит с моей стороны ошибок по идее нет. Это хостинг наверное как то конфликтует с этими файлами..)
Ну да бог с ним. Здесь хотя бы в теории разобраться, что бы с винта всё работало в норме..

Последний раз редактировалось Mike_Kharkov, 23.03.2013 в 08:10.
Ответить с цитированием
  #4 (permalink)  
Старый 23.03.2013, 08:10
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,590

Хардкорный вариант: самому сгенерировать из шрифта картинку(вектор) + объект с описанием позиций, кернинга итд.=))

Но на самом деле готовые варианты точно есть, надо просто хорошенько погуглить "html canvas font".(например)
__________________
29375, 35

Последний раз редактировалось Aetae, 23.03.2013 в 08:13.
Ответить с цитированием
  #5 (permalink)  
Старый 23.03.2013, 08:32
Аватар для Mike_Kharkov
Кандидат Javascript-наук
Отправить личное сообщение для Mike_Kharkov Посмотреть профиль Найти все сообщения от Mike_Kharkov
 
Регистрация: 04.01.2012
Сообщений: 143

Сообщение от Aetae Посмотреть сообщение
Но на самом деле готовые варианты точно есть, надо просто хорошенько погуглить "html canvas font".(например)
Спасибо за ссылку - но к сожалению мне не удалось разобраться что там вообще происходит? ))
(То есть какая цель этого кода?)
Закинул код в свой редактор - открыл в браузере и что дальше? ))
(ничего не понял.)
То есть я понимаю, что что то там(шрифты) попадает на холст после клика по кнопке - но детали мне не ясны.
P.S. C инглишем пока дружу не очень - поэтому гуглить могу только по русскоязычным ресурсам. (Чем сегодня собственно и занимался. Но к сожалению безрезультатно.)

Последний раз редактировалось Mike_Kharkov, 23.03.2013 в 08:37.
Ответить с цитированием
  #6 (permalink)  
Старый 23.03.2013, 09:32
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Сообщение от Mike_Kharkov
Пробовал - но лично у меня подключить не получилось.
Ты рисуешь на канвасе когда шрифт еще не подгружен. Поэтому нужный шрифт отобразится только если он закэширован браузером.
Кроме того, у тебя неправильные заголовки Content-Type. Хром по-видимому их игнорирует, а лис - нет.
Так что если исправить заголовки и дожидаться загрузки шрифта - все будет работать. Другое дело - как дождаться этой самой загрузки.
Как вариант - внедрять шрифты через data:uri. Разумеется это будет отличный вариант только для поддерживающих woff браузеров.
Ответить с цитированием
  #7 (permalink)  
Старый 23.03.2013, 09:36
Аватар для Mike_Kharkov
Кандидат Javascript-наук
Отправить личное сообщение для Mike_Kharkov Посмотреть профиль Найти все сообщения от Mike_Kharkov
 
Регистрация: 04.01.2012
Сообщений: 143

Спасибо!
Сообщение от danik.js Посмотреть сообщение
Кроме того, у тебя неправильные заголовки Content-Type.
P.S. А в чём ошибка Content-Type?
В том что он не заполнен?
(я так понимаю речь идёт о <meta content="" name="keywords">
<meta content="" name="description">)
Такая конструкция проходит валидацию насколько мне известно..
(Или я что то упустил?)

Последний раз редактировалось Mike_Kharkov, 23.03.2013 в 09:42.
Ответить с цитированием
  #8 (permalink)  
Старый 23.03.2013, 09:45
Аватар для Mike_Kharkov
Кандидат Javascript-наук
Отправить личное сообщение для Mike_Kharkov Посмотреть профиль Найти все сообщения от Mike_Kharkov
 
Регистрация: 04.01.2012
Сообщений: 143

Сообщение от danik.js Посмотреть сообщение
Другое дело - как дождаться этой самой загрузки.
А JQ + JS такими возможностями не располагают?
(просто я далеко не спец. в этом направлении..)
Ответить с цитированием
  #9 (permalink)  
Старый 23.03.2013, 09:48
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Уфф, лучше просто показать:


Сообщение от Mike_Kharkov
А JQ + JS такими возможностями не располагают?
Что такое JQ ?
Ответить с цитированием
  #10 (permalink)  
Старый 23.03.2013, 09:54
Аватар для Mike_Kharkov
Кандидат Javascript-наук
Отправить личное сообщение для Mike_Kharkov Посмотреть профиль Найти все сообщения от Mike_Kharkov
 
Регистрация: 04.01.2012
Сообщений: 143

Сообщение от danik.js Посмотреть сообщение
Что такое JQ ?
JQuery.
P.S. Не совсем разобрался, что означают индикаторы на дополнении к браузеру(на сколько я понимаю.)
Тоесть как понять(по этому скрину) в чём ошибка content-type?

Последний раз редактировалось Mike_Kharkov, 23.03.2013 в 09:56.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Html5 canvas эффект наведения Moonlight Оффтопик 16 29.01.2013 20:44
canvas и drawImage() jussik Элементы интерфейса 0 27.10.2012 16:57
Почему неправильно вырисовывается canvas? Amateur Events/DOM/Window 0 19.09.2012 10:45
Создание экземпляра Canvas не затрагивая HTML Tails Общие вопросы Javascript 2 09.03.2012 13:55
Добавить на canvas еще один елемент greengarlic Общие вопросы Javascript 5 22.09.2010 10:16