Как определить закодированное изображение base64 в качестве фона в Sencha Touch 2?

Я кодирую изображение в base64 через следующий код PHP:

$file = fopen($arquivoImagem,"rb", 0);
$gambar = fread($file,filesize($arquivoImagem)); 
fclose($file); 
$base64 = chunk_split(base64_encode($gambar));  

После этого я записываю переменную $base64 в файл, а затем читаю ее через ajax в Sencha Touch. Я могу нормально читать переменную $base64, но не могу определить изображение base64 как фон в Sencha Touch. Я пытаюсь сделать это с помощью кода выше. Переменная "imagem" содержит содержимое переменной $base64 в PHP.

Ext.define("myapp.view.Main", {
    extend: 'Ext.Panel',
    alias: 'widget.mainForm',
    requires: ['Ext.Label', 'Ext.Button'],

    initialize: function () {
        var imagem;
        var store = Ext.getStore('ImagemMenu').load();
        store.each(function(record) {
            if (record.get('local') == 0) {
                imagem = record.get('imagem');
                var estilo = "background-image: url('data:image/png;base64," + imagem + "');";
                this.setStyle(estilo);
            }
        });
    },

...  

В любом случае, мой вопрос: как я могу определить изображение base64 как фон в Sencha Touch 2?

Заранее спасибо.

1 ответ

Это немного болезненно, потому что Сенча пытается проанализировать переданную строку и в основном разбивает ее на: это означает, что строка изображения base64 не будет работать. Поэтому вам нужно вызвать setStyle с объектом, например, в вашем коде:

var estilo = "url('data:image/png;base64," + imagem + "')";

this.setStyle({'background-image', estilo});

Также важно отметить, что у вас не должно быть точки с запятой в конце строки стиля, иначе она не будет работать.

Надеюсь, это поможет!

Другие вопросы по тегам