Как определить закодированное изображение 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});
Также важно отметить, что у вас не должно быть точки с запятой в конце строки стиля, иначе она не будет работать.
Надеюсь, это поможет!