i have application capturing signature, drawing signature want capture information , create base64 string.
sorry here code worked me, not perfect. feel free review , if find please provide feedback. thanks
in example canvas name display
private async task<string> generatebase64bitmap() { // initialization try { // initialization. size canvassize = this.display.rendersize; point defaultpoint = this.display.rendertransformorigin; // sezing output image dimension. this.display.measure(canvassize); this.display.updatelayout(); this.display.arrange(new rect(defaultpoint, canvassize)); // convert canvas bmp. var bmp = new rendertargetbitmap(); await bmp.renderasync(this.display, (int)(this.display.actualwidth / 4), (int)(this.display.actualheight / 4)); // setting. var bitmap = (rendertargetbitmap) bmp; //var bytes = (await bitmap.getpixelsasync()).toarray(); return await tobase64(bitmap); } catch (exception ex) { //this.showmessage(ex.tostring(), "error"); } return string.empty; } private async task<string> tobase64(rendertargetbitmap bmp) { var img = (await bmp.getpixelsasync()).toarray(); var encoded = new inmemoryrandomaccessstream(); var encoder = await bitmapencoder.createasync( bitmapencoder.pngencoderid, encoded); encoder.setpixeldata(bitmappixelformat.bgra8, bitmapalphamode.straight, (uint)bmp.pixelwidth, (uint)bmp.pixelheight, 96, 96, img); await encoder.flushasync(); encoded.seek(0); //read bytes var bytes = new byte[encoded.size]; await encoded.asstream().readasync(bytes, 0, bytes.length); return convert.tobase64string(bytes); } to call method use(add async method):
string encodedimgbase64 = await generatebase64bitmap();
Comments
Post a Comment