декодировать данные изображения из ответа строки HTTP.(Вяз 0,18) - PullRequest
0 голосов
/ 10 февраля 2019

Я бы хотел получить изображение с удаленного сервера и загрузить его в следующую структуру данных:

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 'Я предпочел бы решение без порта, даже если производительность будет ниже, изображения, которые я пытаюсь обработать, невелики.

...