Я бы хотел получить изображение с удаленного сервера и загрузить его в следующую структуру данных:
type alias Pixel = { r : Int, g : Int, b: Int, a: Float }
type alias ImageData = { pixels : Array Pixel, width: Int }
В проекте по некоторым причинам я все еще использую Elm 0.18 и elm-lang/http
только давайте обработать строки как ответы от http-запросов.
init : ( Model, Cmd Msg )
init =
( {}
, Http.send
(\response ->
case response of
Ok data ->
let
_ =
Debug.log "ok" data
in
NoOp
Err error ->
let
_ =
Debug.log "error" error
in
NoOp
)
(Http.getString "https://upload.wikimedia.org/wikipedia/commons/thumb/f/fb/Creamer_MET_186969.jpg/2px-Creamer_MET_186969.jpg")
)
Этот журнал:
ok: "����\0C\0\n\r\t\n\n\r\r��\0\v\0\0\"\0��\0\0\0\0\0\0\0\0\0\0\0\t\n\v��\0�\0\0\0}\0!1AQa\"q2���#B��R��$3br�\t\n%&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz���������������������������������������������������������������������������\0\0\0?\0�9�(�.t�/���=~���"
Но как преобразовать его в приведенную выше структуру данных?Кроме того, имеет ли значение, если изображение является jpg, png, gif?
Что мне нужно, так это реализация функции imageDataFromString : String -> Maybe ImageData
note: I 'Я предпочел бы решение без порта, даже если производительность будет ниже, изображения, которые я пытаюсь обработать, невелики.