Pārlūkot izejas kodu

[js] Implements BytesFileEntry.loadBitmap (#361)

Kevin Leung 7 gadi atpakaļ
vecāks
revīzija
20718b3887
1 mainītis faili ar 11 papildinājumiem un 1 dzēšanām
  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
 	}