From a4657d92fe420fea1ce8e1247fbcd5a297cff18d Mon Sep 17 00:00:00 2001 From: Ketmar Dark Date: Sat, 23 Apr 2016 15:13:40 +0300 Subject: [PATCH] d2dimage: trying png and jpeg if there's no vga --- d2dimage.d | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/d2dimage.d b/d2dimage.d index 8917ea7..a481c44 100644 --- a/d2dimage.d +++ b/d2dimage.d @@ -62,7 +62,21 @@ public: private this () pure nothrow @safe {} this (string name) { - import std.path : extension; + import std.path : extension, setExtension; + if (name.extension == ".vga") { + static immutable string[4] extList = [".vga", ".png", ".jpg", ".jpeg"]; + foreach (string ext; extList) { + try { + auto nn = name.setExtension(ext); + auto fl = openFile(nn); + conwriteln("loading image '", nn, "'"); + load(fl); + return; + } catch (Exception e) { + //conwriteln("ERROR: ", e.msg); + } + } + } auto fl = openFile(name); conwriteln("loading image '", name, "'"); load(fl); @@ -378,9 +392,9 @@ private: char[8] sign; fl.seek(0); fl.rawReadExact(sign[]); - fl.seek(0); // png? if (sign == "\x89\x50\x4E\x47\x0D\x0A\x1A\x0A") { + fl.seek(0); loadPng(fl); return; } @@ -388,13 +402,14 @@ private: if (sign[0..2] == "\xff\xd8") { fl.seek(-2, Seek.End); fl.rawReadExact(sign[0..2]); - fl.seek(0); if (sign[0..2] == "\xff\xd9") { + fl.seek(0); loadJpeg(fl); return; } } // alas, this must be vga + fl.seek(0); loadVga(fl); } } -- 2.11.4.GIT