Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 22.05.2013, 21:16
Новичок на форуме
Отправить личное сообщение для SpekToR Посмотреть профиль Найти все сообщения от SpekToR
 
Регистрация: 22.05.2013
Сообщений: 7

Вывод изображения из blob (перевод blob в base64)
Ajax запросом получаю картинку, сохраняю ее в бд (sqlite) как blob. Но отобразить картинку не получается. Для кодирования в base64 использую https://github.com/yckart/jquery.bas...uery.base64.js
вот скрипт без использования бд:
$.ajax({
    url :   'http://site.com/337746%5B1%5D_0.jpg',
    async: false,
    type: 'GET',
    success: function(image){
        $('#myimg').attr('src','data:image/jpeg;base64,'+$.base64.encode(image));
    }
});

//Пробовал кодировать так:
image = window.btoa(unescape(encodeURIComponent(image)));

Encode дает какой-то похожий на base64 результат, но картинка не отображается (как будто url указана неправильно). Пробовал вставлять найденную в base64 png картинку, она отображается нормально. Значит вся загвоздка только в кодировании или при получении...
Также читал, что для кодирования можно использовать canvas.toDataURL(); но не понимаю как загрузить в canvas изображение. И если делать через canvas, то также хотел уточнить, работает он только с png?
Ответить с цитированием
  #2 (permalink)  
Старый 22.05.2013, 22:17
х.з
Посмотреть профиль Найти все сообщения от dmitriymar
 
Регистрация: 21.11.2010
Сообщений: 4,588

а зачем это всё?
аяксом можно получить адрес картинки .
Сохранить его в базе? если необходимо .
Выводить на экран её с помощью стандартных методов, бекграундом, тегом img, канвой
Ответить с цитированием
  #3 (permalink)  
Старый 22.05.2013, 22:23
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,495

https://developer.mozilla.org/en-US/...reateObjectURL
__________________
29375, 35
Ответить с цитированием
  #4 (permalink)  
Старый 22.05.2013, 22:33
Новичок на форуме
Отправить личное сообщение для SpekToR Посмотреть профиль Найти все сообщения от SpekToR
 
Регистрация: 22.05.2013
Сообщений: 7

Сообщение от dmitriymar Посмотреть сообщение
а зачем это всё?
аяксом можно получить адрес картинки .
Сохранить его в базе? если необходимо .
Выводить на экран её с помощью стандартных методов, бекграундом, тегом img, канвой
Делаю мобильное приложение (phonegap), которое получает данные с сервера и работает с ними в оффлайн режиме.
Ответить с цитированием
  #5 (permalink)  
Старый 22.05.2013, 22:47
х.з
Посмотреть профиль Найти все сообщения от dmitriymar
 
Регистрация: 21.11.2010
Сообщений: 4,588

Сообщение от SpekToR
Делаю мобильное приложение (phonegap), которое получает данные с сервера и работает с ними в оффлайн режиме.
И что мешает загонять изображения в канву с сервера сразу и сохранять их base64 представление? -сложный вариант по сравнению с очевидным:
А phonegap с файлами не работает? не? http://docs.phonegap.com/en/2.7.0/co...e.md.html#File
И приложение не может брать графические файлы с файловой системой и корректно с ними работать?

Последний раз редактировалось dmitriymar, 22.05.2013 в 22:53.
Ответить с цитированием
  #6 (permalink)  
Старый 22.05.2013, 23:04
Новичок на форуме
Отправить личное сообщение для SpekToR Посмотреть профиль Найти все сообщения от SpekToR
 
Регистрация: 22.05.2013
Сообщений: 7

Да просто совсем не хочется работать с файлами, удаляя их каждый раз.
А с канвасом не особо понял как изображения загружать. Просто рисовать их?
// т.е. так загружаем в канвас:
var c=document.getElementById("myCanvas");
var ctx=c.getContext("2d");
var img=document.getElementById("scream");
ctx.drawImage(image,10,10);
// и получаем?
src=c.toDataURL();

И вообще, может я получаю данные неправильно?... Пробуя метод Aetae, написало, что не тот тип. Сделал alert(typeof image), вывело string... А в базу записывается нормально.

Последний раз редактировалось SpekToR, 22.05.2013 в 23:12.
Ответить с цитированием
  #7 (permalink)  
Старый 22.05.2013, 23:23
х.з
Посмотреть профиль Найти все сообщения от dmitriymar
 
Регистрация: 21.11.2010
Сообщений: 4,588

Сообщение от SpekToR
А с канвасом не особо понял как изображения загружать. Просто рисовать их?
а где то другие варианты описаны? только на канве нужно отрисовывать после полной загрузки изображения в объект изображения-это всё расписано на любом ресурсе по докам канвы
Ответить с цитированием
  #8 (permalink)  
Старый 22.05.2013, 23:25
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,495

Откуда картинка изначально?
__________________
29375, 35
Ответить с цитированием
  #9 (permalink)  
Старый 22.05.2013, 23:44
Новичок на форуме
Отправить личное сообщение для SpekToR Посмотреть профиль Найти все сообщения от SpekToR
 
Регистрация: 22.05.2013
Сообщений: 7

Сообщение от Aetae Посмотреть сообщение
Откуда картинка изначально?
Из приложения делаю ajax запрос (приведенный выше) на сайт и получаю изображение. Попробую тогда через canvas.
Ответить с цитированием
  #10 (permalink)  
Старый 23.05.2013, 00:24
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,495

Какая-то наркомания. =\
__________________
29375, 35
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вывод изображения (перевод blob в base64) SpekToR Мобильный JavaScript 0 22.05.2013 21:11
Вывод изображения на печать. can2zia Events/DOM/Window 0 10.01.2011 14:39
Вывод части изображения Rau1 Общие вопросы Javascript 2 22.02.2009 02:57