Преглед изворни кода

[js] Implements BytesFileEntry.loadBitmap (#361)

Kevin Leung пре 7 година
родитељ
комит
20718b3887
1 измењених фајлова са 11 додато и 1 уклоњено
  1. 11 1
      hxd/fs/BytesFileSystem.hx

+ 11 - 1
hxd/fs/BytesFileSystem.hx

@@ -1,5 +1,7 @@
 package hxd.fs;
 
+using haxe.io.Path;
+
 class BytesFileEntry extends FileEntry {
 
 	var fullPath : String;
@@ -60,7 +62,15 @@ class BytesFileEntry extends FileEntry {
 		});
 		loader.loadBytes(bytes.getData());
 		#else
-		throw "TODO";
+		var mime = switch fullPath.extension().toLowerCase() {
+			case 'jpg' | 'jpeg': 'image/jpeg';
+			case 'png': 'image/png';
+			case 'gif': 'image/gif';
+			case _: throw 'Cannot determine image encoding, try adding an extension to the resource path';
+		}
+		var img = new js.html.Image();
+		img.onload = function() onLoaded(new hxd.fs.LoadedBitmap(img));
+		img.src = 'data:$mime;base64,' + haxe.crypto.Base64.encode(bytes);
 		#end
 	}