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

            Kamusi Yaliyomo Aina za kamusi | Muundo wa kamusi | Faida za kamusi | Dhima ya picha katika kamusi | Marejeo | Tazama pia | Viungo vya nje | UrambazajiKuhusu kamusiGo-SwahiliWiki-KamusiKamusi ya Kiswahili na Kiingerezakuihariri na kuongeza habari

            SQL error code 1064 with creating Laravel foreign keysForeign key constraints: When to use ON UPDATE and ON DELETEDropping column with foreign key Laravel error: General error: 1025 Error on renameLaravel SQL Can't create tableLaravel Migration foreign key errorLaravel php artisan migrate:refresh giving a syntax errorSQLSTATE[42S01]: Base table or view already exists or Base table or view already exists: 1050 Tableerror in migrating laravel file to xampp serverSyntax error or access violation: 1064:syntax to use near 'unsigned not null, modelName varchar(191) not null, title varchar(191) not nLaravel cannot create new table field in mysqlLaravel 5.7:Last migration creates table but is not registered in the migration table

            은진 송씨 목차 역사 본관 분파 인물 조선 왕실과의 인척 관계 집성촌 항렬자 인구 같이 보기 각주 둘러보기 메뉴은진 송씨세종실록 149권, 지리지 충청도 공주목 은진현