On Monday, 6 June 2016 at 03:11:32 UTC, Pie? wrote:
e.g., how could I do this easily with your read in your png module? It takes a file..

/// Easily reads a png file into a MemoryImage
MemoryImage readPng(string filename) {
        import std.file;
        return imageFromPng(readPng(cast(ubyte[]) read(filename)));

recognize the code?


The string version just forwards to the byte array version. So you can use it directly with the array by just casting to ubyte[].

rikki cattermole got it right, except I *think* the cast(ubyte[]) needs to be explicit on the import line, so

ubyte[] theArray = cast(ubyte[]) import("...");

(Actually, the string one is an afterthought, I originally wrote it to only work with arrays (well, technically, input ranges of bytes), leaving the file reading to an outside function, but since loading a file from a filename is so common, I added the overload for it.)


Reply via email to