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;
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
add a comment |
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
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 thenew/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
add a comment |
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
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
elixir wxerlang
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 thenew/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
add a comment |
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 thenew/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
add a comment |
1 Answer
1
active
oldest
votes
I had a play around with :wxImage
and I found a couple of problems with your code:
- You need to call
:wx.new()
to to initialize wx before any of the:wxImage
functions will work. - The argument to
getData/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.
add a comment |
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
);
);
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
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
I had a play around with :wxImage
and I found a couple of problems with your code:
- You need to call
:wx.new()
to to initialize wx before any of the:wxImage
functions will work. - The argument to
getData/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.
add a comment |
I had a play around with :wxImage
and I found a couple of problems with your code:
- You need to call
:wx.new()
to to initialize wx before any of the:wxImage
functions will work. - The argument to
getData/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.
add a comment |
I had a play around with :wxImage
and I found a couple of problems with your code:
- You need to call
:wx.new()
to to initialize wx before any of the:wxImage
functions will work. - The argument to
getData/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.
I had a play around with :wxImage
and I found a couple of problems with your code:
- You need to call
:wx.new()
to to initialize wx before any of the:wxImage
functions will work. - The argument to
getData/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.
edited Mar 23 at 4:02
answered Mar 23 at 3:53
Adam MillerchipAdam Millerchip
3,17311731
3,17311731
add a comment |
add a comment |
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.
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
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
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
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
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 thenew/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