Получено рабочее решение, хотя оно не рекомендуется для больших изображений, отлично работает для (большого количества) небольших изображений.
Шаги:
- Преобразовать значок (ей) base64 строки (строк).
- Создайте файл JSON с именем файла как ключи и строки base64 в качестве значений. (Вы также можете хранить данные о них в местной базе данных).
, например. ImageData.json
{
"icon1": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFAAAABQ.......==",
"icon2": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFAAAABQ.......=="
}
3.Import файл JSon в том месте, где требуется изображения динамически.
например.
const imageData = require("./images/ImageData.json")
4: Получить/сгенерировать ключ/имя файла во время выполнения. и получить источник изображения.
например.
const imageSrc = imageData[keyname]
5: Генерировать изображение динамически во время выполнения.
например.
<Image style={{ width: 70, height: 70, resizeMode: Image.resizeMode.contain }} source={ uri: imageSrc } />
Done ..
Extra .. Письменное сценарий помощник питона для автоматизации создания JSON файла.
import base64
import os
directory = os.fsencode('.')
with open('ImagesData.json', 'wb') as jsonFile:
jsonFile.write(bytes('{', 'utf-8'))
written = False
for file in os.listdir(directory):
filename = os.fsdecode(file)
if filename.endswith('.png'):
with open(filename, "rb") as image_file:
if written:
jsonFile.write(bytes(',\n','utf-8'))
encoded_string = base64.b64encode(image_file.read())
jsonFile.write(bytes(('"' +filename+ '":'), 'utf-8'))
jsonFile.write(bytes('"data:image/png;base64,', 'utf-8') + encoded_string + bytes('"', 'utf-8'))
written = True
jsonFile.write(bytes('}', 'utf-8'))
- Скопируйте скрипт в папку и запустить скрипт (требуется питона 3.6).
- Файл json будет создан с именем изображения в качестве ключа и base64 в качестве значений.
- Скопируйте файл для его проецирования и использования (после этого вы можете удалить изображения).
- Используйте файл json, как указано выше.
Я думаю, что вы можете дать неправильный путь. – Codesingh