Как стать автором
Обновить
2
0
Артур Шарк @arthurshark

Пользователь

Отправить сообщение

Спасибо за позитивный комментарий! Очень рад, что статья оказалась полезной.

Касательно создания Image из URL могу подсказать основные шаги:

  1. Получить бинарные данные изображения по URL, например, с помощью пакета http.

  2. Декодировать изображение с помощью Codec.

  3. Использовать полученное изображение для своих целей.

Я написал еще один пример реализации эффекта из статьи. В этом примере используется загрузка изображения по URL с помощью пакета http. При желании можно изменить источник изображения на assets.

В новой реализации прошу обратить внимание на ключевые моменты:

  • Codec должен освободить ресурсы, поэтому используемый Image клонируется, а потом вызывается метод dispose.

  • Для работы с изображением используется FutureBuilder, который рисует колесо загрузки, пока готовятся данные изображения.

С кодом для этого примера можно через DartPad.

Также в качестве альтернативы для вашего кейса могу предложить использовать ClipPath. Он позволит обрезать любой виджет по произвольному контуру. Кажется, в этом ваша цель?

Надеюсь, что смог подсказать, куда смотреть.

Если что-то осталось без ответа – пишите, буду рад помочь!

Спасибо за комментарий!

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

Вы верно заметили, что при работе с веб-фреймворками эффект, реализуемый в статье, может быть быстро получен через CSS.

Дело в том, что Flutter – это фреймворк для кроссплатформенной разработки, а не веб фреймворк. В отличие от других популярных кроссплатформенных решений (таких как React Native и Ionic), использующих веб-компоненты для отображения интерфейса, Flutter использует свой собственный набор виджетов, за отображение которых отвечает графический движок Skia (подробнее об этом можно почитать в документации).

Выбранный разработчиками Flutter способ рендеринга не позволяет использовать CSS для отображения элементов интерфейса, так как, с точки зрения браузера, Flutter на вебе – это Canvas, и для отдельных пикселей на нем не получится применить CSS стиль. Также Flutter поддерживает другие платформы (Android, iOS, Linux, macOS, Windows), на которых данный эффект должен работать без обращения к CSS. Поэтому в статье рассматривается способ реализации эффекта с помощью шейдеров.

P.S. Я ценю ваше мнение и заботу обо мне и моих читателях, когда вы указываете на проблемные и ошибочные места в статье, но мне было неприятно читать комментарий, оформленный настолько эмоционально и провокационно. Я буду очень признателен, если другие комментарии окажутся более вежливыми.

Информация

В рейтинге
Не участвует
Откуда
Сербия
Зарегистрирован
Активность