2014-09-17 3 views
1

Я пытался базы кодировать мое изображение, чтобы показать это с помощью CSS, как:Encode изображение base64

background-image: url(data:image/png;base64,%codeForImage%) 

Так что я попробовал то, что я нашел здесь:

https://developer.mozilla.org/en-US/docs/Web/API/WindowBase64/Base64_encoding_and_decoding

Но это не будет . Покажите мне любое изображение (с помощью PNG изображения с 'PhoneGap андроида Drawable'

Два вопроса:

Как я могу решить это или , как я могу показать изображение без base64 раньше.

Пример: Можно ли захватить байты изображения и показать его с помощью

background-image:url(data:%uncodedImageBytes%) 

фона: Я получаю байты изображения из PhoneGap плагин, и я пытаюсь показать изображение для пользователя.

ответ

0

Первая часть кода корректна:

background-image: url(data:image/png;base64,%codeForImage%) 

Вставка двоичных данных не будет работать.

Если вы видите другое изображение вместо того, которое вы ожидаете, то ваши селекторы CSS не соответствуют элементу (например, если элемент является <div id="foobar">, а ваш селектор div.foobar) или ваш селектор есть not specific enough.

В любом случае проверьте элемент с чем-то вроде Firebug и проверьте, какие правила CSS были применены к элементу, и если вы видите тот, который хотите в верхней части.

+0

Кажется, я не могу base64 кодирования изображения, двоичные файлы правильно. Уверен, что у меня есть правильный div (настройка фона: зеленые работы :)) – Dinkheller

+0

Какой инструмент вы используете для кодирования изображений base64? Если 'background: green' работает, все равно может быть, что некоторые« фоновые изображения »добавляются сверху.Попробуйте установить «фоновое изображение» с URL-адресом на внешнее изображение, чтобы увидеть, может ли изображение вообще применяться. – lxg

+0

По причинам проверки я не использовал никаких дополнительных разделов. Итак, нет ничего выше. И добавление файла для изображения работает. – Dinkheller

0

Я бы рекомендовал против Base 64 для мобильных приложений в целом.

Why? Check here.

Если вы хотите использовать Base64, несмотря на увеличение производительности, то я рекомендую использовать сайт как this one для того, чтобы сделать кодировку Base64. В противном случае строка url выглядит подходящей, но двоичный формат не соответствует ожидаемому. Забавно, он ожидает Base64 - что-то совсем другое.

Редактировать

Если вам нужно сделать это во время выполнения и только с двоичными файлами, сделать это в JavaScript. У него есть функция, испеченная в которой будет обрабатываться кодировка Base64 из двоичного файла, зависающего от объекта Window.

Here's the documentation

Используйте это так:

var bSixtyFourString = window.btoa(%MY_BINARY%); 
+0

Спасибо, я не просил скорости, но как удалось показать изображение. У меня есть двоичные данные во время выполнения, поэтому я не могу вызвать сайт. Как я могу сделать базовую кодировку в двоичных файлах? – Dinkheller

+0

@ProtoBassi - Проверьте редактирование. –

+0

в моем посте в строке 4. Это btoa(). Но это дает мне проблему с unicode (опять же, как описано в ссылке). Вот где мои вопросы начинаются. Обходные пути мне не помогают, так как кажется, что изображение искажается ими). – Dinkheller