Flutter в настоящее время не предоставляет такую функцию.
Там могут быть сторонние пакеты, которые делают это. Единственное, что я знаю, это den
( https://pub.dartlang.org/packages/den ), но этот не поддерживается уже довольно давно и не может быть использован с последним Dart или Флаттер версии.
Что может помочь, так это получить хотя бы список зависимостей, в которых доступны более новые версии.
Upvote https://github.com/flutter/flutter/issues/12627 для этого.
В то же время можно использовать обходной путь, упомянутый в https://github.com/flutter/flutter/issues/12627#issuecomment-400037072 .
Установите FLUTTER_ROOT
на ваш Переверните каталог установки и запустите pub upgrade
. (для этого требуется установить Dart SDK в дополнение к Flutter SDK)
$ export FLUTTER_ROOT="/Users/my_user/flutter"
$ pub upgrade
Resolving dependencies... (16.2s)
! analyzer 0.33.0 (overridden) (0.34.2 available)
args 1.5.1
async 2.0.8
boolean_selector 1.0.4
! build 1.1.0 (overridden)
built_collection 4.1.0
! built_redux 7.5.2 (overridden)
built_value 6.2.0
bwu_grinder_tasks 0.2.0-dev.0
charcode 1.1.2
cli_util 0.1.3+2
collection 1.14.11
contacts_service 0.0.9 (0.1.0 available)
> convert 2.1.1 (was 2.0.2)
crypto 2.0.6
csslib 0.14.6
dart_style 1.2.2
device_info 0.2.1 (0.3.0 available)
> file 5.0.7 (was 5.0.6)
> firebase_analytics 1.1.0 (was 1.0.6)
...
Откройте карту в Inkscape. Если это - битовый массив, используйте Путь-> Битовый массив Трассировки для трассировки краев. Очистите векторные данные для включения только путей, что Вы хотите появиться в своей карте изображения. Сохраните документ, я предлагаю файлу POVRay. Теперь у Вас есть список вершин (и много разметки или метаданных, о которых Вы не заботитесь о) в формате обычного текста. Преобразование от этого до необходимого синтаксиса HTML является все еще проблемой, но совсем не столь же сложный как первый шаг.
Если это имеет значение существует давнишний запрос новых функций для Inkscape для включения опции экспортировать карты изображения HTML.
Спасибо за помощь!
Хотя Jonathans подсказывают для использования фильтра Sobel, определенно работал бы, я выбрал подход Sparrs первого преобразования битового массива в векторное изображение (через Inkscape) и затем обработка файла SVG. После изучения некоторых основ спецификации SVG было довольно легко извлечь - для необходимых карт изображения HTML - координаты X/Y от всех других спам и сгенерировать подходящий код.
Хотя это не аэрокосмические исследования, кто-то мог бы найти эту часть кода полезной:
// input format: M 166,362.27539 C 163.525,360.86029 161.3875,359.43192 161.25,359.10124 C ...
private static void Svg2map(string svg_input)
{
StringBuilder stringToFile = new StringBuilder();
// get rid of some spaces and characters
var workingString = svg_input.Replace("z", "").Replace(" M ", "M").Replace(" C ", "C");
// split into seperate polygons
var polygons = workingString.Split('M');
foreach (var polygon in polygons)
{
if (!polygon.Equals(String.Empty))
{
// each polygon is a clickable area
stringToFile.Append("<area shape=\"poly\" coords=\"");
// split into point information
var positionInformation = polygon.Split('C');
foreach (var position in positionInformation)
{
var noise = position.Trim().Split(' ');
// only the first x/y-coordinates after C are relevant
var point = noise[0].Split(',');
foreach (var value in point)
{
var valueParts = value.Split('.');
// remove part after comma - we don't need this accurancy in HTML
stringToFile.Append(valueParts[0]);
// comma for seperation - don't worry, we'll clean the last ones within an area out later
stringToFile.Append(",");
}
}
stringToFile.AppendLine("\" href=\"targetpage.html\" alt=\"Description\" />");
}
}
// clean obsolete commas - not pretty nor efficient
stringToFile = stringToFile.Replace(",\"", "\"");
var fs = new StreamWriter(new FileStream("output.txt", FileMode.Create));
fs.Write(stringToFile.ToString());
fs.Close();
}
Я могу дать Вам один шаг процесса: Вы испытываете необходимость для использования фильтра Sobel (часто названный граничным обнаружением в программах как Photoshop).
После этого необходимо будет найти библиотеку трассировки на предпочтительном языке.