Re: Как передавать файлы между js и webassembly
От: Евгений Акиньшин grapholite.com
Дата: 22.10.23 13:30
Оценка: 16 (1)
Здравствуйте, bnk, Вы писали:


bnk>Разбираюсь тут с поддержкой webassembly [JSImport]/[JSExport],

bnk>В .NET 7 ее наконец отцепили от непонятной штуки в виде блазора. Блазор не нужен (tm), компиляция dotnet в webassembly нужна

Не уверен, что то что нужно, но посмотрите, как SkiaSharp делает:

https://github.com/mono/SkiaSharp/blob/main/source/SkiaSharp.Views/SkiaSharp.Views.Blazor/SKCanvasView.razor.cs#L103
interop.PutImageData(pixelsHandle.AddrOfPinnedObject(), info.Size);


https://github.com/mono/SkiaSharp/blob/main/source/SkiaSharp.Views/SkiaSharp.Views.Blazor/Internal/SKHtmlCanvasInterop.cs#L85

public void PutImageData(IntPtr intPtr, SKSizeI rawSize) =>
            Invoke(PutImageDataSymbol, htmlCanvas, intPtr.ToInt64(), rawSize.Width, rawSize.Height);


на стороне js вот так забирают:
https://github.com/mono/SkiaSharp/blob/main/source/SkiaSharp.Views/SkiaSharp.Views.Blazor/wwwroot/SKHtmlCanvas.ts#L196

var buffer = new Uint8ClampedArray(Module.HEAPU8.buffer, pData, width * height * 4);
var imageData = new ImageData(buffer, width, height);
ctx.putImageData(imageData, 0, 0);

Не шалю, никого не трогаю, починяю примус Diagrams Designer for iPad and Windows 10
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.