How to convert erlang module (wxImage) const/array to a list in Elixir?Using the :httpc erlang module from ElixirHow to join strings in Elixir?Convert Elixir string to integer or floatIn Elixir, how can a range be converted to a list?wxSplitterWindow.splitVertically not accepting windows in Elixir/ErlangHow do you check for the type of variable in ElixirWhere does Elixir/erlang fit into the microservices approach?Using Erlang library with ElixirConvert Erlang catch to ElixirHow to Create an Erlang property list from Elixir

How can I tell water pressure is too high for the washing machine?

How can internet speed be 10 times slower without a router than when using the same connection with a router?

Start job from another SQL server instance

Python 3 - simple temperature program

Does "Captain Marvel" contain spoilers for "Avengers: Infinity War"?

Why would a military not separate its forces into different branches?

Is 'contemporary' ambiguous and if so is there a better word?

What do I do if my advisor made a mistake?

What are the advantages of luxury car brands like Acura/Lexus over their sibling non-luxury brands Honda/Toyota?

How does the reduce() method work in Java 8?

Can my 2 children, aged 10 and 12, who are US citizens, travel to the USA on expired American passports?

Install LibreOffice-Writer Only not LibreOffice whole package

Voltage Balun 1:1

Can there be a single technologically advanced nation, in a continent full of non-technologically advanced nations?

Dangerous workplace travelling

Copy previous line to current line from text file

Why didn't this character get a funeral at the end of Avengers: Endgame?

Where are the "shires" in the UK?

Any examples of liquids volatile at room temp but non-flammable?

Mug and wireframe entirely disappeared

Has the Hulk always been able to talk?

Is there a word that describes the unjustified use of a more complex word?

Is there precedent or are there procedures for a US president refusing to concede to an electoral defeat?

What do "Sech" and "Vich" mean in this sentence?



How to convert erlang module (wxImage) const/array to a list in Elixir?


Using the :httpc erlang module from ElixirHow to join strings in Elixir?Convert Elixir string to integer or floatIn Elixir, how can a range be converted to a list?wxSplitterWindow.splitVertically not accepting windows in Elixir/ErlangHow do you check for the type of variable in ElixirWhere does Elixir/erlang fit into the microservices approach?Using Erlang library with ElixirConvert Erlang catch to ElixirHow to Create an Erlang property list from Elixir






.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty height:90px;width:728px;box-sizing:border-box;








0















I am trying to manipulate a "test.jpg" image in Elixir by using Erlang wxImage library, but I am getting an error. I do not know how to convert the array/const output to a list so I can use it in Elixir.



Also I do not know why there is a clause function error when the syntax seems to be alright?



defmodule Imedit2 do
def readimg(image) do
:ok, _file = File.open("happy737.txt", [:write])
IO.puts("hi there")
_output =
image
|> File.read!()
|> :wxImage.getData()
|> to_charlist()

# IO.puts(is_list(output))
# IO.puts(is_tuple(output))
# IO.binwrite(file, output)
# File.close(file)
end
end


iex(58)> Imedit2.readimg("test.jpg")
hi there
** (FunctionClauseError) no function clause matching in :wxImage.getData/1

The following arguments were given to :wxImage.getData/1:

# 1
<<255, 216, 255, 226, 2, 28, 73, 67, 67, 95, 80, 82, 79, 70, 73, 76, 69, 0, 1,
1, 0, 0, 2, 12, 108, 99, 109, 115, 2, 16, 0, 0, 109, 110, 116, 114, 82, 71,
66, 32, 88, 89, 90, 32, 7, 220, 0, 1, 0, 25, ...>>

gen/wxImage.erl:405: :wxImage.getData/1
lib/imedit2.ex:5: Imedit2.readimg/1









share|improve this question
























  • You are passing a binary into the function :wxImage.getData/1. If you look at the documentation for that function, it expects a reference to the image, not the images binary data. I have never used this library before, but it looks like you need to call :wxImage.loadFile/2,3,4 in order to load your image from a file. You will probably also need to call the new/0 function to first get a blank image reference.

    – Justin Wood
    Mar 23 at 1:19











  • I thought that File.read loads the image and that's why there is an output of numbers as a result of wximage processing the loaded image.

    – Arto Kalishian
    Mar 23 at 1:56

















0















I am trying to manipulate a "test.jpg" image in Elixir by using Erlang wxImage library, but I am getting an error. I do not know how to convert the array/const output to a list so I can use it in Elixir.



Also I do not know why there is a clause function error when the syntax seems to be alright?



defmodule Imedit2 do
def readimg(image) do
:ok, _file = File.open("happy737.txt", [:write])
IO.puts("hi there")
_output =
image
|> File.read!()
|> :wxImage.getData()
|> to_charlist()

# IO.puts(is_list(output))
# IO.puts(is_tuple(output))
# IO.binwrite(file, output)
# File.close(file)
end
end


iex(58)> Imedit2.readimg("test.jpg")
hi there
** (FunctionClauseError) no function clause matching in :wxImage.getData/1

The following arguments were given to :wxImage.getData/1:

# 1
<<255, 216, 255, 226, 2, 28, 73, 67, 67, 95, 80, 82, 79, 70, 73, 76, 69, 0, 1,
1, 0, 0, 2, 12, 108, 99, 109, 115, 2, 16, 0, 0, 109, 110, 116, 114, 82, 71,
66, 32, 88, 89, 90, 32, 7, 220, 0, 1, 0, 25, ...>>

gen/wxImage.erl:405: :wxImage.getData/1
lib/imedit2.ex:5: Imedit2.readimg/1









share|improve this question
























  • You are passing a binary into the function :wxImage.getData/1. If you look at the documentation for that function, it expects a reference to the image, not the images binary data. I have never used this library before, but it looks like you need to call :wxImage.loadFile/2,3,4 in order to load your image from a file. You will probably also need to call the new/0 function to first get a blank image reference.

    – Justin Wood
    Mar 23 at 1:19











  • I thought that File.read loads the image and that's why there is an output of numbers as a result of wximage processing the loaded image.

    – Arto Kalishian
    Mar 23 at 1:56













0












0








0








I am trying to manipulate a "test.jpg" image in Elixir by using Erlang wxImage library, but I am getting an error. I do not know how to convert the array/const output to a list so I can use it in Elixir.



Also I do not know why there is a clause function error when the syntax seems to be alright?



defmodule Imedit2 do
def readimg(image) do
:ok, _file = File.open("happy737.txt", [:write])
IO.puts("hi there")
_output =
image
|> File.read!()
|> :wxImage.getData()
|> to_charlist()

# IO.puts(is_list(output))
# IO.puts(is_tuple(output))
# IO.binwrite(file, output)
# File.close(file)
end
end


iex(58)> Imedit2.readimg("test.jpg")
hi there
** (FunctionClauseError) no function clause matching in :wxImage.getData/1

The following arguments were given to :wxImage.getData/1:

# 1
<<255, 216, 255, 226, 2, 28, 73, 67, 67, 95, 80, 82, 79, 70, 73, 76, 69, 0, 1,
1, 0, 0, 2, 12, 108, 99, 109, 115, 2, 16, 0, 0, 109, 110, 116, 114, 82, 71,
66, 32, 88, 89, 90, 32, 7, 220, 0, 1, 0, 25, ...>>

gen/wxImage.erl:405: :wxImage.getData/1
lib/imedit2.ex:5: Imedit2.readimg/1









share|improve this question
















I am trying to manipulate a "test.jpg" image in Elixir by using Erlang wxImage library, but I am getting an error. I do not know how to convert the array/const output to a list so I can use it in Elixir.



Also I do not know why there is a clause function error when the syntax seems to be alright?



defmodule Imedit2 do
def readimg(image) do
:ok, _file = File.open("happy737.txt", [:write])
IO.puts("hi there")
_output =
image
|> File.read!()
|> :wxImage.getData()
|> to_charlist()

# IO.puts(is_list(output))
# IO.puts(is_tuple(output))
# IO.binwrite(file, output)
# File.close(file)
end
end


iex(58)> Imedit2.readimg("test.jpg")
hi there
** (FunctionClauseError) no function clause matching in :wxImage.getData/1

The following arguments were given to :wxImage.getData/1:

# 1
<<255, 216, 255, 226, 2, 28, 73, 67, 67, 95, 80, 82, 79, 70, 73, 76, 69, 0, 1,
1, 0, 0, 2, 12, 108, 99, 109, 115, 2, 16, 0, 0, 109, 110, 116, 114, 82, 71,
66, 32, 88, 89, 90, 32, 7, 220, 0, 1, 0, 25, ...>>

gen/wxImage.erl:405: :wxImage.getData/1
lib/imedit2.ex:5: Imedit2.readimg/1






elixir wxerlang






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited Mar 24 at 4:43









Aleksei Matiushkin

85.6k95895




85.6k95895










asked Mar 23 at 1:02









Arto KalishianArto Kalishian

2817




2817












  • You are passing a binary into the function :wxImage.getData/1. If you look at the documentation for that function, it expects a reference to the image, not the images binary data. I have never used this library before, but it looks like you need to call :wxImage.loadFile/2,3,4 in order to load your image from a file. You will probably also need to call the new/0 function to first get a blank image reference.

    – Justin Wood
    Mar 23 at 1:19











  • I thought that File.read loads the image and that's why there is an output of numbers as a result of wximage processing the loaded image.

    – Arto Kalishian
    Mar 23 at 1:56

















  • You are passing a binary into the function :wxImage.getData/1. If you look at the documentation for that function, it expects a reference to the image, not the images binary data. I have never used this library before, but it looks like you need to call :wxImage.loadFile/2,3,4 in order to load your image from a file. You will probably also need to call the new/0 function to first get a blank image reference.

    – Justin Wood
    Mar 23 at 1:19











  • I thought that File.read loads the image and that's why there is an output of numbers as a result of wximage processing the loaded image.

    – Arto Kalishian
    Mar 23 at 1:56
















You are passing a binary into the function :wxImage.getData/1. If you look at the documentation for that function, it expects a reference to the image, not the images binary data. I have never used this library before, but it looks like you need to call :wxImage.loadFile/2,3,4 in order to load your image from a file. You will probably also need to call the new/0 function to first get a blank image reference.

– Justin Wood
Mar 23 at 1:19





You are passing a binary into the function :wxImage.getData/1. If you look at the documentation for that function, it expects a reference to the image, not the images binary data. I have never used this library before, but it looks like you need to call :wxImage.loadFile/2,3,4 in order to load your image from a file. You will probably also need to call the new/0 function to first get a blank image reference.

– Justin Wood
Mar 23 at 1:19













I thought that File.read loads the image and that's why there is an output of numbers as a result of wximage processing the loaded image.

– Arto Kalishian
Mar 23 at 1:56





I thought that File.read loads the image and that's why there is an output of numbers as a result of wximage processing the loaded image.

– Arto Kalishian
Mar 23 at 1:56












1 Answer
1






active

oldest

votes


















1
















I had a play around with :wxImage and I found a couple of problems with your code:



  1. You need to call :wx.new() to to initialize wx before any of the :wxImage functions will work.

  2. The argument togetData/1 should be the image handle, not the binary file data. From the docs:


wxImage()



An object reference, The representation is internal and can be changed without notice. It can't be used for comparsion stored on disc or distributed for use on other nodes.




And for getData/1:




getData(This) -> binary()



Types

This = wxImage()




So you can do it like this:



def readimg(image) do
:wx.new()

data =
image
|> String.to_charlist()
|> :wxImage.new()
|> :wxImage.getData()
|> :binary.bin_to_list()

:wx.destroy()
data
end


But beware that the bin_to_list/1 call is slow, and I don't think you need it anyway. You probably want to stop at :wxImage.new(), keep the handle in a variable, and use that to call whatever other :wxImage functions you need.






share|improve this answer

























    Your Answer






    StackExchange.ifUsing("editor", function ()
    StackExchange.using("externalEditor", function ()
    StackExchange.using("snippets", function ()
    StackExchange.snippets.init();
    );
    );
    , "code-snippets");

    StackExchange.ready(function()
    var channelOptions =
    tags: "".split(" "),
    id: "1"
    ;
    initTagRenderer("".split(" "), "".split(" "), channelOptions);

    StackExchange.using("externalEditor", function()
    // Have to fire editor after snippets, if snippets enabled
    if (StackExchange.settings.snippets.snippetsEnabled)
    StackExchange.using("snippets", function()
    createEditor();
    );

    else
    createEditor();

    );

    function createEditor()
    StackExchange.prepareEditor(
    heartbeatType: 'answer',
    autoActivateHeartbeat: false,
    convertImagesToLinks: true,
    noModals: true,
    showLowRepImageUploadWarning: true,
    reputationToPostImages: 10,
    bindNavPrevention: true,
    postfix: "",
    imageUploader:
    brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
    contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
    allowUrls: true
    ,
    onDemand: true,
    discardSelector: ".discard-answer"
    ,immediatelyShowMarkdownHelp:true
    );



    );













    draft saved

    draft discarded


















    StackExchange.ready(
    function ()
    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f55309620%2fhow-to-convert-erlang-module-wximage-const-array-to-a-list-in-elixir%23new-answer', 'question_page');

    );

    Post as a guest















    Required, but never shown

























    1 Answer
    1






    active

    oldest

    votes








    1 Answer
    1






    active

    oldest

    votes









    active

    oldest

    votes






    active

    oldest

    votes









    1
















    I had a play around with :wxImage and I found a couple of problems with your code:



    1. You need to call :wx.new() to to initialize wx before any of the :wxImage functions will work.

    2. The argument togetData/1 should be the image handle, not the binary file data. From the docs:


    wxImage()



    An object reference, The representation is internal and can be changed without notice. It can't be used for comparsion stored on disc or distributed for use on other nodes.




    And for getData/1:




    getData(This) -> binary()



    Types

    This = wxImage()




    So you can do it like this:



    def readimg(image) do
    :wx.new()

    data =
    image
    |> String.to_charlist()
    |> :wxImage.new()
    |> :wxImage.getData()
    |> :binary.bin_to_list()

    :wx.destroy()
    data
    end


    But beware that the bin_to_list/1 call is slow, and I don't think you need it anyway. You probably want to stop at :wxImage.new(), keep the handle in a variable, and use that to call whatever other :wxImage functions you need.






    share|improve this answer





























      1
















      I had a play around with :wxImage and I found a couple of problems with your code:



      1. You need to call :wx.new() to to initialize wx before any of the :wxImage functions will work.

      2. The argument togetData/1 should be the image handle, not the binary file data. From the docs:


      wxImage()



      An object reference, The representation is internal and can be changed without notice. It can't be used for comparsion stored on disc or distributed for use on other nodes.




      And for getData/1:




      getData(This) -> binary()



      Types

      This = wxImage()




      So you can do it like this:



      def readimg(image) do
      :wx.new()

      data =
      image
      |> String.to_charlist()
      |> :wxImage.new()
      |> :wxImage.getData()
      |> :binary.bin_to_list()

      :wx.destroy()
      data
      end


      But beware that the bin_to_list/1 call is slow, and I don't think you need it anyway. You probably want to stop at :wxImage.new(), keep the handle in a variable, and use that to call whatever other :wxImage functions you need.






      share|improve this answer



























        1












        1








        1









        I had a play around with :wxImage and I found a couple of problems with your code:



        1. You need to call :wx.new() to to initialize wx before any of the :wxImage functions will work.

        2. The argument togetData/1 should be the image handle, not the binary file data. From the docs:


        wxImage()



        An object reference, The representation is internal and can be changed without notice. It can't be used for comparsion stored on disc or distributed for use on other nodes.




        And for getData/1:




        getData(This) -> binary()



        Types

        This = wxImage()




        So you can do it like this:



        def readimg(image) do
        :wx.new()

        data =
        image
        |> String.to_charlist()
        |> :wxImage.new()
        |> :wxImage.getData()
        |> :binary.bin_to_list()

        :wx.destroy()
        data
        end


        But beware that the bin_to_list/1 call is slow, and I don't think you need it anyway. You probably want to stop at :wxImage.new(), keep the handle in a variable, and use that to call whatever other :wxImage functions you need.






        share|improve this answer

















        I had a play around with :wxImage and I found a couple of problems with your code:



        1. You need to call :wx.new() to to initialize wx before any of the :wxImage functions will work.

        2. The argument togetData/1 should be the image handle, not the binary file data. From the docs:


        wxImage()



        An object reference, The representation is internal and can be changed without notice. It can't be used for comparsion stored on disc or distributed for use on other nodes.




        And for getData/1:




        getData(This) -> binary()



        Types

        This = wxImage()




        So you can do it like this:



        def readimg(image) do
        :wx.new()

        data =
        image
        |> String.to_charlist()
        |> :wxImage.new()
        |> :wxImage.getData()
        |> :binary.bin_to_list()

        :wx.destroy()
        data
        end


        But beware that the bin_to_list/1 call is slow, and I don't think you need it anyway. You probably want to stop at :wxImage.new(), keep the handle in a variable, and use that to call whatever other :wxImage functions you need.







        share|improve this answer














        share|improve this answer



        share|improve this answer








        edited Mar 23 at 4:02

























        answered Mar 23 at 3:53









        Adam MillerchipAdam Millerchip

        3,17311731




        3,17311731





























            draft saved

            draft discarded
















































            Thanks for contributing an answer to Stack Overflow!


            • Please be sure to answer the question. Provide details and share your research!

            But avoid …


            • Asking for help, clarification, or responding to other answers.

            • Making statements based on opinion; back them up with references or personal experience.

            To learn more, see our tips on writing great answers.




            draft saved


            draft discarded














            StackExchange.ready(
            function ()
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f55309620%2fhow-to-convert-erlang-module-wximage-const-array-to-a-list-in-elixir%23new-answer', 'question_page');

            );

            Post as a guest















            Required, but never shown





















































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown

































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown







            Popular posts from this blog

            How to preserve electronics (computers, tablets and phones) for hundreds of years Announcing the arrival of Valued Associate #679: Cesar Manara Planned maintenance scheduled April 23, 2019 at 23:30 UTC (7:30pm US/Eastern) The network's official Twitter account is up and running again. What content…How might modern humans leave a message for 50,000 years?How would an aquatic race develop computers?How do we make computers care for human life?Keeping supplies for 1000 yearsWhat will cell phones become in 100 years?What body armor protects against a laser?Could a society attain 1800s technology if limited to using copper and bronze?Electricity power (magic) and electronicsScavenging metal resources in post-apocalypse after 100 yearsWhy would precursors create devices that can survive and still work after hundreds of years?

            155 수학 과학 기타 둘러보기 메뉴eh추가해eh문서를 완성해

            Convert JSON to MapSimplest way to convert a string representing JSON array into Java array List of key value pairsHow to take String JSON values into HashMapConvert a JSON String to a HashMapCreating BSON object from JSON stringJSONObject - How to get a value ?Better Map ConstructorReading JSON from Url javaUpdate columns if input values are not null otherwise ignore and keep the existing values of column in databaseHow to store object represented as Json string into Couchbase Lite?Go JSON into MapHow do I efficiently iterate over each entry in a Java Map?Sort a Map<Key, Value> by valuesHow to round a number to n decimal places in JavaCan comments be used in JSON?How do I read / convert an InputStream into a String in Java?How can I pretty-print JSON in a shell script?What is the correct JSON content type?How can I deserialize JSON to a simple Dictionary<string,string> in ASP.NET?Why does Google prepend while(1); to their JSON responses?Parse JSON in JavaScript?