这几天了解二维码了解的比较多,不过就是没深入了解。google了一下生产含logo二维码的思路,就是把logo给画到生成的二维码上,还是因为二维码的纠错能力足够好啊,用Graphics对图片进行操作??没发现有Graphics这个类,还好WriteableBitmap足够强大,动态创建一个grid(其他的布局也可以)和两个image,一个source设置成二维码一个source设置成logo的,两个image添加到grid中,用WriteableBitmap来获取grid的图像,,,,,哪个大神有好的解决办法可以透漏一下
Grid grid = new Grid() { Height = 300, Width = 300 }; Image imgbg = new Image() { Height = 300, Width = 300 }; Image imglogo = new Image() { Height = 50, Width = 50, Margin = new Thickness(125, 125, 0, 0),//这里就写死了 Source = new BitmapImage { UriSource = new Uri("/wp;component/Images/logo.jpg", UriKind.Relative) } }; //imgCode为资源为生成的二维码 var img = imgCode.Source as WriteableBitmap; imgbg.Source = img; grid.Children.Add(imgbg); grid.Children.Add(imglogo); WriteableBitmap wb = new WriteableBitmap(grid, null); //显示生成的含logo的二维码 imgLogoCode.Source = wb;
还有就是生成彩色的二维码,,,也是对生成好的二维码进行操作??是的话就太坑了,简单弄了一下生成白底红色的二维码
WriteableBitmap wbp = imgCode.Source as WriteableBitmap; if (wbp != null) { for (int i = 0; i < wbp.Pixels.Length; i++) { unchecked { if (wbp.Pixels[i] == (int)0xFF000000) { wbp.Pixels[i] = (int)0xFFFF0000; } } } } wbp.Invalidate();