You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
In the README, the example for loading from a stream is:
functionload(f::File{format"PNG"})
open(f) do s
skipmagic(s) # skip over the magic bytes# You can just call the method below...
ret =load(s)
# ...or implement everything here insteadendend# You can support streams and add keywords:functionload(s::Stream{format"PNG"}; keywords...)
# s is already positioned after the magic bytes# Do the stuff to read a PNG file
chunklength =read(s, UInt32)
...end
This works if the user calls load("somefile.png"), which will end up calling the load(::File, ...) method, which handles skipping the magic bytes before calling load(::Stream). What I'm not super clear on is how this is intended to be used directly. e.g. I couldn't just do:
open("somefile.png") do io
load(io)
end
In ImageMagick.jl it looks likeload is called on the IO stream directly without skipping the magic(k) bytes.
So if it seems like the way ImageMagick does it (leaving the stream at the very beginning of the file when calling load(::Stream)) I can put in a documentation PR that clarifies that.
The text was updated successfully, but these errors were encountered:
I can't remember why it was done this way. I think I've encountered formats where it makes more sense to keep the magic bytes in the stream. So I'm fine with this change.
In the README, the example for loading from a stream is:
This works if the user calls
load("somefile.png")
, which will end up calling theload(::File, ...)
method, which handles skipping the magic bytes before callingload(::Stream)
. What I'm not super clear on is how this is intended to be used directly. e.g. I couldn't just do:In ImageMagick.jl it looks like
load
is called on the IO stream directly without skipping the magic(k) bytes.So if it seems like the way ImageMagick does it (leaving the stream at the very beginning of the file when calling
load(::Stream)
) I can put in a documentation PR that clarifies that.The text was updated successfully, but these errors were encountered: