c# - How create a base64 string from a canvas Windows Phone 8.1(Universal app) -


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