Nano Hash - криптовалюты, майнинг, программирование

Лучший способ для Android создать изображение из механизма компоновки (выровненный текст, позиционирование поля, встраивание изображений)

Уже три дня я ищу (и тестирую) библиотеки, которые могут выполнять генерацию изображения из текстового контента. Я разрабатываю приложение для Android с помощью дополненной реальности Metaio SDK. Чтобы применить текстуру с текстом и встроенным изображением, я должен создать файл PNG. Итак, мне нужен метод:

  • Совместимость с Android
  • На клиенте для Android: не создается PNG на сервере.
  • С правильным способом, таким как html/css, svg или макет Android, например: т.е. не нужно делать выравнивание текста и позиционирование поля с нуля, я уверен, вы понимаете, почему x)
  • Который может выполнять генерацию во внешнем потоке (т.е. без просмотра макета пользователем)

Я пробовал много решений, но ничего не работает.

Использование WebView

Некоторые темы по этому поводу:

В конечном счете, onPageFinished недостаточно, и мы должны реализовать:

webView.setPictureListener(new PictureListener()
{
    @Override
    public void onNewPicture(WebView view, Picture picture)
    {
        [...]

Он работает, но он устарел, и WebView должен быть виден, если я хочу сгенерировать png, и мне это не подходит.

Использование макета Android

Некоторые темы по этому поводу:

Опять же, у меня должно быть видимое представление, чтобы сгенерировать из него PNG.

Использование svg-android

Некоторые темы по этому поводу:

Это работает, но есть только основные функции: включить текст, изображение или изображение data-uri не работают.

Использование батика

Растеризатор SVG и его использование.

Работает, но не на Android.

Преобразование в формат Dalvik не удалось с ошибкой 1

12.03.2014

Ответы:


1

Наконец-то мне удалось использовать WebView без просмотра представления. Я установил ширину на 0,1 dp и быстро переключаюсь между видимым/невидимым.

Я использую WebView, потому что механизм компоновки более совершенен. Но предупреждение: как упоминалось выше, метод onNewPicture устарел.

Я реализовал класс, содержащий GenerationProcess, который выполняет все обработки потока (в потоке пользовательского интерфейса или в фоновом потоке) и GenerationQueue , которые выполняют упорядочивание потоков. Таким образом, этот класс полностью независим, и вы можете использовать его, не задумываясь о том, какой поток вы являетесь.

С движком Android Layout нам не нужно использовать все эти потоки, потому что нет функции обратного вызова, такой как onPageFinished и onNewPicture: сделайте свой выбор!

Проект Github — WebView2Img

Вы можете взглянуть на:

Затем вы можете расширить страницу, чтобы манипулировать DOM (например, с помощью jdom) для динамического установите содержимое и сохраните файл html.

ИЗМЕНИТЬ: здесь пример расширения страницы с манипулированием домом перед генерацией

17.03.2014
Новые материалы

Кластеризация: более глубокий взгляд
Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

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

Частный метод Python: улучшение инкапсуляции и безопасности
Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

Как я автоматизирую тестирование с помощью Jest
Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..