|
JavaScript / HTML Создание динамической разметки страниц |
16.01.2015, 15:21
|
#16
|
.
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений (для 6,863 пользователей)
|
Ответ: скачать файл в js и преобразовать в base64
Сообщение от pax
Мне бы хотя бы узнать, что эта ошибка произошла. И вернуть результат, что не получилось скачать...
|
Если в броузере происходит, и грузишь картинку Image объектом, то не выйдет. Броузер не сообщим об этом.
А если используешь Ajax, то будет сообщена ошибка как event.
|
(Offline)
|
|
16.01.2015, 15:25
|
#17
|
Unity/C# кодер
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений (для 5,323 пользователей)
|
Ответ: скачать файл в js и преобразовать в base64
Удалось поймать ошибку
function downloadImage(url, callback){ console.log("downloading image: "+ url); var image = new Image(); image.crossOrigin = "Anonymous"; image.onload = function() { var canvas = document.createElement('canvas'); var ctx = canvas.getContext('2d'); canvas.width = image.naturalWidth; canvas.height = image.naturalHeight; ctx.drawImage(image, 0, 0); try{ var pngBlob = canvas.toDataURL(); } catch(e){ callback(""); } callback(pngBlob); }; if(image.addEventListener) { image.addEventListener('error', function (e) { e.preventDefault(); // Prevent error from getting thrown callback(""); }); } else { // Old IE uses .attachEvent instead image.attachEvent('onerror', function (e) { callback(""); return false; // Prevent propagation }); } image.src = url; }
|
(Offline)
|
|
16.01.2015, 15:46
|
#18
|
.
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений (для 6,863 пользователей)
|
Ответ: скачать файл в js и преобразовать в base64
Сообщение от pax
Удалось поймать ошибку
function downloadImage(url, callback){ console.log("downloading image: "+ url); var image = new Image(); image.crossOrigin = "Anonymous"; image.onload = function() { var canvas = document.createElement('canvas'); var ctx = canvas.getContext('2d'); canvas.width = image.naturalWidth; canvas.height = image.naturalHeight; ctx.drawImage(image, 0, 0); try{ var pngBlob = canvas.toDataURL(); } catch(e){ callback(""); } callback(pngBlob); }; if(image.addEventListener) { image.addEventListener('error', function (e) { e.preventDefault(); // Prevent error from getting thrown callback(""); }); } else { // Old IE uses .attachEvent instead image.attachEvent('onerror', function (e) { callback(""); return false; // Prevent propagation }); } image.src = url; }
|
Надеюсь поддержка евентов на картинке норм, т.к. Image объект всегда отличался в броузерах.
|
(Offline)
|
|
16.01.2015, 16:07
|
#19
|
Unity/C# кодер
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений (для 5,323 пользователей)
|
Ответ: скачать файл в js и преобразовать в base64
Ради чего все затевалось:
|
(Offline)
|
|
Эти 2 пользователя(ей) сказали Спасибо pax за это полезное сообщение:
|
|
16.01.2015, 19:03
|
#20
|
.
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений (для 6,863 пользователей)
|
Ответ: скачать файл в js и преобразовать в base64
А если спрятать нафиг все кроме драндулета в хорошем окружении, то все равно будет запрещать рендерить, имхо, если драндулет шаришь, то лучше иметь красивое окружение драндулета, а не просто скрин, который и так может кто угодно сделать..
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
16.01.2015, 19:07
|
#21
|
Unity/C# кодер
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений (для 5,323 пользователей)
|
Ответ: скачать файл в js и преобразовать в base64
Это само собой, со временем сделаем нормальное окно с вводом текста при посте на стену пользователя. Сейчас главное есть возможность читать данные с экрана и рендертекстур.
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 11:23.
|