private void Characteristic_ValueChanged(GattCharacteristic sender, GattValueChangedEventArgs args) { if (sender == this.Characteristic) { var valueBytes = WindowsRuntimeBufferExtensions.ToArray(args.CharacteristicValue); // Convert the bytes array to the structure GCHandle pinnedPacket = GCHandle.Alloc(valueBytes, GCHandleType.Pinned); var msg = Marshal.PtrToStructure <NotificationSourceData>(pinnedPacket.AddrOfPinnedObject()); pinnedPacket.Free(); //We dont care about old notifications if (msg.EventFlags.HasFlag(EventFlags.EventFlagPreExisting)) { return; } switch (msg.EventId) { case EventID.NotificationAdded: this.NotificationAdded?.Invoke(this, msg); break; case EventID.NotificationModified: this.NotificationModified?.Invoke(this, msg); break; case EventID.NotificationRemoved: this.NotificationRemoved?.Invoke(this, msg); break; } } }
public async Task <string> PostAsync(string url, IDictionary <string, object> toPost) { var result = string.Empty; string postData = GetQueryString(toPost); var cts = new CancellationTokenSource(); try { using (var client = new HttpClient()) { var httpContent = new HttpStringContent(postData, Windows.Storage.Streams.UnicodeEncoding.Utf8); httpContent.Headers.ContentType.MediaType = "application/x-www-form-urlencoded"; var response = await client.PostAsync(new Uri(url), httpContent).AsTask(cts.Token); var buf = await response.Content.ReadAsBufferAsync(); byte[] bytes = WindowsRuntimeBufferExtensions.ToArray(buf, 0, (int)buf.Length); result = gbk.GetString(bytes, 0, bytes.Length); } } catch (Exception ex) { cts.Cancel(); await new MessageDialog(ex.Message + "\n\n请尝试刷新或检查网络连接是否正常!", "POST请求失败").ShowAsync(); } return(result); }
private void messageReceived(ProximityDevice proximityDevice, ProximityMessage message) { var rawMsg = WindowsRuntimeBufferExtensions.ToArray(message.Data); //このrawMsgをNDEF解析すればよいようだ //NDEF解析はOSでやってくれないらしい。OSがやるのはNFPだけか。 string str = "メッセージ"; switch (rawMsg[3]) { case (byte)'T': str += "TEXT"; break; case (byte)'U': str += "URI"; break; case (byte)'S': if (rawMsg[4] == (byte)'p') { str += "SmartPoster"; } break; } showToast(str); }
public async Task <string> GetAsync(string url) { var result = string.Empty; var cts = new CancellationTokenSource(); try { using (var client = new HttpClient()) { // 在异步任务中加入进度监控 var response = await client.GetAsync(new Uri(url)).AsTask(cts.Token); var buf = await response.Content.ReadAsBufferAsync(); byte[] bytes = WindowsRuntimeBufferExtensions.ToArray(buf, 0, (int)buf.Length); result = gbk.GetString(bytes, 0, bytes.Length); } } catch (Exception ex) { cts.Cancel(); await new MessageDialog(ex.Message + "\n\n请尝试刷新或检查网络连接是否正常!", "GET请求失败").ShowAsync(); } return(result); }
private async Task <string> EncryptedPassword(string passWord) { string base64String; try { HttpBaseProtocolFilter httpBaseProtocolFilter = new HttpBaseProtocolFilter(); httpBaseProtocolFilter.IgnorableServerCertificateErrors.Add(Windows.Security.Cryptography.Certificates.ChainValidationResult.Expired); httpBaseProtocolFilter.IgnorableServerCertificateErrors.Add(Windows.Security.Cryptography.Certificates.ChainValidationResult.Untrusted); var jObjects = (await accountApi.GetKey().Request()).GetJObject(); string str = jObjects["data"]["hash"].ToString(); string str1 = jObjects["data"]["key"].ToString(); string str2 = string.Concat(str, passWord); string str3 = Regex.Match(str1, "BEGIN PUBLIC KEY-----(?<key>[\\s\\S]+)-----END PUBLIC KEY").Groups["key"].Value.Trim(); byte[] numArray = Convert.FromBase64String(str3); AsymmetricKeyAlgorithmProvider asymmetricKeyAlgorithmProvider = AsymmetricKeyAlgorithmProvider.OpenAlgorithm(AsymmetricAlgorithmNames.RsaPkcs1); CryptographicKey cryptographicKey = asymmetricKeyAlgorithmProvider.ImportPublicKey(WindowsRuntimeBufferExtensions.AsBuffer(numArray), 0); IBuffer buffer = CryptographicEngine.Encrypt(cryptographicKey, WindowsRuntimeBufferExtensions.AsBuffer(Encoding.UTF8.GetBytes(str2)), null); base64String = Convert.ToBase64String(WindowsRuntimeBufferExtensions.ToArray(buffer)); } catch (Exception) { base64String = passWord; } return(base64String); }
/// <summary> /// 加密密码 /// </summary> /// <param name="password">密码</param> /// <returns></returns> private async Task <string> EncryptedPasswordAsync(string password) { string base64String; try { string param = BiliTool.UrlContact("").TrimStart('?'); string content = await BiliTool.PostContentToWebAsync(Api.PASSPORT_KEY_ENCRYPT, param); JObject jobj = JObject.Parse(content); string str = jobj["data"]["hash"].ToString(); string str1 = jobj["data"]["key"].ToString(); string str2 = string.Concat(str, password); string str3 = Regex.Match(str1, "BEGIN PUBLIC KEY-----(?<key>[\\s\\S]+)-----END PUBLIC KEY").Groups["key"].Value.Trim(); byte[] numArray = Convert.FromBase64String(str3); AsymmetricKeyAlgorithmProvider asymmetricKeyAlgorithmProvider = AsymmetricKeyAlgorithmProvider.OpenAlgorithm(AsymmetricAlgorithmNames.RsaPkcs1); CryptographicKey cryptographicKey = asymmetricKeyAlgorithmProvider.ImportPublicKey(WindowsRuntimeBufferExtensions.AsBuffer(numArray), 0); IBuffer buffer = CryptographicEngine.Encrypt(cryptographicKey, WindowsRuntimeBufferExtensions.AsBuffer(Encoding.UTF8.GetBytes(str2)), null); base64String = Convert.ToBase64String(WindowsRuntimeBufferExtensions.ToArray(buffer)); } catch (Exception) { base64String = password; } return(base64String); }
/// <summary> /// ZipFolder and its sub folders /// </summary> /// <param name="tcpSocket"></param> async private static Task ZipFolderContents(StorageFolder sourceFolder, ZipArchive archive, string baseDirPath) { IReadOnlyList <StorageFile> files = await sourceFolder.GetFilesAsync(); foreach (StorageFile file in files) { ZipArchiveEntry readmeEntry = archive.CreateEntry(GetCompressedFileName(baseDirPath, file)); byte[] buffer = WindowsRuntimeBufferExtensions.ToArray(await FileIO.ReadBufferAsync(file)); // And write the contents to it using (Stream entryStream = readmeEntry.Open()) { await entryStream.WriteAsync(buffer, 0, buffer.Length); } } IReadOnlyList <StorageFolder> subFolders = await sourceFolder.GetFoldersAsync(); if (subFolders.Count() == 0) { return; } foreach (StorageFolder subfolder in subFolders) { await ZipFolderContents(subfolder, archive, baseDirPath); } }
private async Task <SolidColorBrush> GetPixelColor() { RenderTargetBitmap retarbi = new RenderTargetBitmap(); await retarbi.RenderAsync(PocketPaintApplication.GetInstance().PaintingAreaCanvas, (int)PocketPaintApplication.GetInstance().PaintingAreaCanvas.ActualWidth, (int)PocketPaintApplication.GetInstance().PaintingAreaCanvas.ActualHeight); Windows.Storage.Streams.IBuffer buffer = await(retarbi.GetPixelsAsync()); var pixels = WindowsRuntimeBufferExtensions.ToArray(buffer); var width = retarbi.PixelWidth; var height = retarbi.PixelHeight; double NormfactorX = (double)width / (double)PocketPaintApplication.GetInstance().Bitmap.PixelWidth; double NormfactorY = (double)height / (double)PocketPaintApplication.GetInstance().Bitmap.PixelHeight; double doubleY = ((double)Y) * NormfactorY; double doubleX = ((double)X) * NormfactorX; int intX = (int)Math.Round(doubleX, 0); int intY = (int)Math.Round(doubleY, 0); int intTemp = intY * width; int intXTemp = intTemp + intX; int intValue = intXTemp * 4; var a = pixels[intValue + 3]; var r = pixels[intValue + 2]; var g = pixels[intValue + 1]; var B = pixels[intValue]; return(new SolidColorBrush(Windows.UI.Color.FromArgb(a, r, g, B))); }
public static async Task <string> GetEncryptedPassword(string passWord) { string base64String; try { //https://secure.bilibili.com/login?act=getkey&rnd=4928 //https://passport.bilibili.com/login?act=getkey&rnd=4928 HttpBaseProtocolFilter httpBaseProtocolFilter = new HttpBaseProtocolFilter(); httpBaseProtocolFilter.IgnorableServerCertificateErrors.Add(Windows.Security.Cryptography.Certificates.ChainValidationResult.Expired); httpBaseProtocolFilter.IgnorableServerCertificateErrors.Add(Windows.Security.Cryptography.Certificates.ChainValidationResult.Untrusted); Windows.Web.Http.HttpClient httpClient = new Windows.Web.Http.HttpClient(httpBaseProtocolFilter); //WebClientClass wc = new WebClientClass(); string stringAsync = await httpClient.GetStringAsync((new Uri("https://passport.bilibili.com/login?act=getkey&rnd=" + new Random().Next(1000, 9999), UriKind.Absolute))); JObject jObjects = JObject.Parse(stringAsync); string str = jObjects["hash"].ToString(); string str1 = jObjects["key"].ToString(); string str2 = string.Concat(str, passWord); string str3 = Regex.Match(str1, "BEGIN PUBLIC KEY-----(?<key>[\\s\\S]+)-----END PUBLIC KEY").Groups["key"].Value.Trim(); byte[] numArray = Convert.FromBase64String(str3); AsymmetricKeyAlgorithmProvider asymmetricKeyAlgorithmProvider = AsymmetricKeyAlgorithmProvider.OpenAlgorithm(AsymmetricAlgorithmNames.RsaPkcs1); CryptographicKey cryptographicKey = asymmetricKeyAlgorithmProvider.ImportPublicKey(WindowsRuntimeBufferExtensions.AsBuffer(numArray), 0); IBuffer buffer = CryptographicEngine.Encrypt(cryptographicKey, WindowsRuntimeBufferExtensions.AsBuffer(Encoding.UTF8.GetBytes(str2)), null); base64String = Convert.ToBase64String(WindowsRuntimeBufferExtensions.ToArray(buffer)); } catch (Exception) { //throw; base64String = passWord; } return(base64String); }
private static async Task <string> EncryptedPassword(string passWord) { string base64String; try { HttpBaseProtocolFilter httpBaseProtocolFilter = new HttpBaseProtocolFilter(); httpBaseProtocolFilter.IgnorableServerCertificateErrors.Add(Windows.Security.Cryptography.Certificates.ChainValidationResult.Expired); httpBaseProtocolFilter.IgnorableServerCertificateErrors.Add(Windows.Security.Cryptography.Certificates.ChainValidationResult.Untrusted); Windows.Web.Http.HttpClient httpClient = new Windows.Web.Http.HttpClient(httpBaseProtocolFilter); string url = "https://passport.bilibili.com/api/oauth2/getKey"; string content = $"appkey={ApiHelper.AndroidKey.Appkey}&mobi_app=android&platform=android&ts={ApiHelper.GetTimeSpan}"; content += "&sign=" + ApiHelper.GetSign(content); string stringAsync = await WebClientClass.PostResults(new Uri(url), content); JObject jObjects = JObject.Parse(stringAsync); string str = jObjects["data"]["hash"].ToString(); string str1 = jObjects["data"]["key"].ToString(); string str2 = string.Concat(str, passWord); string str3 = Regex.Match(str1, "BEGIN PUBLIC KEY-----(?<key>[\\s\\S]+)-----END PUBLIC KEY").Groups["key"].Value.Trim(); byte[] numArray = Convert.FromBase64String(str3); AsymmetricKeyAlgorithmProvider asymmetricKeyAlgorithmProvider = AsymmetricKeyAlgorithmProvider.OpenAlgorithm(AsymmetricAlgorithmNames.RsaPkcs1); CryptographicKey cryptographicKey = asymmetricKeyAlgorithmProvider.ImportPublicKey(WindowsRuntimeBufferExtensions.AsBuffer(numArray), 0); IBuffer buffer = CryptographicEngine.Encrypt(cryptographicKey, WindowsRuntimeBufferExtensions.AsBuffer(Encoding.UTF8.GetBytes(str2)), null); base64String = Convert.ToBase64String(WindowsRuntimeBufferExtensions.ToArray(buffer)); } catch (Exception) { base64String = passWord; } return(base64String); }
public override byte[] GetHashAndReset() { IBuffer result = hasher.GetValueAndReset(); var asBytes = WindowsRuntimeBufferExtensions.ToArray(result); return(asBytes); }
public async Task ZipFolderContents(StorageFolder sourceFolder, ZipArchive archive, string baseDirPath) { IReadOnlyList <StorageFile> files = await sourceFolder.GetFilesAsync(); foreach (StorageFile file in files) { ZipArchiveEntry readmeEntry = archive.CreateEntry(file.Path.Remove(0, baseDirPath.Length)); IBuffer FileBuffer = await FileIO.ReadBufferAsync(file); if (FileBuffer.Length != 0) { //byte[] buffer=FileBuffer.ToArray(); byte[] buffer = WindowsRuntimeBufferExtensions.ToArray(FileBuffer); using (Stream entryStream = readmeEntry.Open()) { await entryStream.WriteAsync(buffer, 0, buffer.Length); } } } IReadOnlyList <StorageFolder> subFolders = await sourceFolder.GetFoldersAsync(); if (subFolders.Count() == 0) { return; } foreach (StorageFolder subfolder in subFolders) { await ZipFolderContents(subfolder, archive, baseDirPath); } }
async public Task <int> preparePaintingAreaCanvasForEraser() { RenderTargetBitmap retarbi = new RenderTargetBitmap(); Canvas eraserCanvas = PocketPaintApplication.GetInstance().EraserCanvas; try { if (eraserCanvas.Visibility == Visibility.Collapsed) { eraserCanvas.Visibility = Visibility.Visible; } await retarbi.RenderAsync(eraserCanvas); Windows.Storage.Streams.IBuffer buffer = await(retarbi.GetPixelsAsync()); pixelsCanvasEraser = WindowsRuntimeBufferExtensions.ToArray(buffer); this.pixelHeightCanvas = retarbi.PixelHeight; this.pixelWidthCanvas = retarbi.PixelWidth; } catch { return(1); } return(0); }
public void TestSha512ProviderConsistency() { byte[] message = System.Text.Encoding.UTF8.GetBytes( "abcdefghbcdefghicDEFghijdefghijkefghijklfghijklmghijklmnhijklmnoijklmnopjklmnopqklmnopqrlmnopqrsmnopqrstnopqrstu"); int digestExpectedLength = 64; //for SHA 512, this is the expected length //The Bouncy Castle way org.whispersystems.curve25519.BouncyCastleDotNETSha512Provider provider = new org.whispersystems.curve25519.BouncyCastleDotNETSha512Provider(); byte[] digestActual = new byte[digestExpectedLength]; provider.calculateDigest(digestActual, message, message.Length); //The WinRT way HashAlgorithmProvider sha512Provider = HashAlgorithmProvider.OpenAlgorithm(HashAlgorithmNames.Sha512); IBuffer bMessage = WindowsRuntimeBufferExtensions.AsBuffer(message); IBuffer bDigest = sha512Provider.HashData(bMessage); byte[] digestWinRT = WindowsRuntimeBufferExtensions.ToArray(bDigest); //The PCLCrypto way PCLCrypto.IHashAlgorithmProvider sha512PCLProvider = PCLCrypto.WinRTCrypto.HashAlgorithmProvider.OpenAlgorithm(PCLCrypto.HashAlgorithm.Sha512); byte[] digestPCL = sha512PCLProvider.HashData(message); //Did we get the same value for all ways? CollectionAssert.AreEqual(digestWinRT, digestActual); CollectionAssert.AreEqual(digestPCL, digestWinRT); }
private async Task <WriteableBitmap> SaveRecognitionCanvas1(Canvas canvas, double width, double height) { //Create a temporary image file for the recognition canvas - recogCanvas.png StorageFolder pictureFolder = ApplicationData.Current.LocalFolder; var savefile = await pictureFolder.CreateFileAsync("recogCanvas.png", CreationCollisionOption.GenerateUniqueName); if (savefile == null) { return(null); } IRandomAccessStream stream = await savefile.OpenAsync(FileAccessMode.ReadWrite); //Retrieve the pixel data from the canvas RenderTargetBitmap renderBitmap = new RenderTargetBitmap(); await renderBitmap.RenderAsync(canvas, (int)width, (int)height); IBuffer x = await renderBitmap.GetPixelsAsync(); //Set the IsTooLarge flag if the IBuffer is too long for writing. This prevents an exception and writes only half the image. //7664640 - max buffer size int value; if ((int)x.Length > 7664640) { //Write only the max length of data IsTooLarge = true; value = 7664640; } else { //Write the whole lenght of data value = (int)x.Length; } //Write the image pixels to a bitmap WriteableBitmap WBitmap = new WriteableBitmap((int)width, (int)height); using (Stream pb = WBitmap.PixelBuffer.AsStream()) { //This method will throw and exception if he pixel array is too large await pb.WriteAsync(WindowsRuntimeBufferExtensions.ToArray(x), 0, value); } Stream pixelStream = WBitmap.PixelBuffer.AsStream(); byte[] pixels = new byte[pixelStream.Length]; var length = pixels.Length; await pixelStream.ReadAsync(pixels, 0, pixels.Length); // Save the image file with png extension so the image is transparent for merging BitmapEncoder encoder = await BitmapEncoder.CreateAsync(BitmapEncoder.PngEncoderId, stream); encoder.SetPixelData(BitmapPixelFormat.Bgra8, BitmapAlphaMode.Ignore, (uint)WBitmap.PixelWidth, (uint)WBitmap.PixelHeight, 96.0, 96.0, pixels); await encoder.FlushAsync(); return(WBitmap); }
/// <summary> /// method to compress files /// </summary> public async void Compress() { // Retrieve files to compress // Created new file to store compressed files //This will create a file under the selected folder in the name “Compressed.zip” StorageFile zipFile = await SelectedFolder.CreateFileAsync("Compressed.zip", CreationCollisionOption.ReplaceExisting); // Create stream to compress files in memory (ZipArchive can't stream to an IRandomAccessStream, see // http://social.msdn.microsoft.com/Forums/en-US/winappswithcsharp/thread/62541424-ba7d-43d3-9585-1fe53dc7d9e2 // for details on this issue) using (MemoryStream zipMemoryStream = new MemoryStream()) { InProgress = true; // Create zip archive using (ZipArchive zipArchive = new ZipArchive(zipMemoryStream, ZipArchiveMode.Create)) { // For each file to compress... foreach (StorageFile fileToCompress in filesToCompress) { BasicProperties fileProp = await fileToCompress.GetBasicPropertiesAsync(); if (fileProp.Size > 0) { //Read the contents of the file byte[] buffer = WindowsRuntimeBufferExtensions.ToArray(await FileIO.ReadBufferAsync(fileToCompress)); string fileEntry = fileToCompress.Path.Replace(zipFile.Path.Replace(zipFile.Name, string.Empty), string.Empty); // Create a zip archive entry ZipArchiveEntry entry = zipArchive.CreateEntry(fileEntry, CompressionLevelSelected); // And write the contents to it using (Stream entryStream = entry.Open()) { await entryStream.WriteAsync(buffer, 0, buffer.Length); } } } } using (IRandomAccessStream zipStream = await zipFile.OpenAsync(FileAccessMode.ReadWrite)) { // Write compressed data from memory to file using (Stream outstream = zipStream.AsStreamForWrite()) { byte[] buffer = zipMemoryStream.ToArray(); outstream.Write(buffer, 0, buffer.Length); outstream.Flush(); } } InProgress = false; StatusMessage = "Files Zipped..."; } }
private async Task <byte[]> PostWebData(Uri uri, byte[] data) { HttpClient client = new HttpClient(); HttpBufferContent body = data != null ? new HttpBufferContent(WindowsRuntimeBufferExtensions.AsBuffer(data)) : (HttpBufferContent)null; HttpResponseMessage response = await client.PostAsync(uri, (IHttpContent)body); IBuffer ibuff = await response.get_Content().ReadAsBufferAsync(); byte[] buff = WindowsRuntimeBufferExtensions.ToArray(ibuff); return(buff); }
async void SaveCheckPhoto(StorageFile ImageFile) { IBuffer fileBuffer = await FileIO.ReadBufferAsync(ImageFile); byte[] btsImage = WindowsRuntimeBufferExtensions.ToArray(fileBuffer, 0, (int)fileBuffer.Length); Data.DoctorCheckLog photo = NewPhoto(); photo.Photo = btsImage; Views.CheckPhotoDetailEventArgs cva = new Views.CheckPhotoDetailEventArgs(); cva.InhosID = iCommon.Patient.InhosID; cva.CheckPhoto = photo; OnSaveCheckPhoto(null, cva); }
public async Task Render(RenderTargetBitmap image) { var buffer = await image.GetPixelsAsync(); const int kMaxSPISize = 65000; /// 19200; int spilines = kMaxSPISize / (image.PixelWidth * 2); int spiblock = spilines * (image.PixelWidth * 2); var numPixels = image.PixelWidth * image.PixelHeight; var numPixelBytes = numPixels * 2; byte[] framebuffer = new byte[spiblock]; var y = 0; var offset = 0; for (int buff = 0; buff < numPixelBytes / spiblock; buff++) { offset = buff * spiblock * 2; byte[] pixels = WindowsRuntimeBufferExtensions.ToArray(buffer, (uint)offset, spiblock * 2); for (int frameBuff = 0, source = 0; frameBuff < framebuffer.Length; frameBuff += 2, source += 4) { int color565 = (((pixels[source + 0] & 0xF8) << 8) | ((pixels[source + 1] & 0xFC) << 3) | ((pixels[source + 2] & 0xF8) >> 3)); framebuffer[frameBuff] = (byte)((color565 >> 8) & 0xFF); framebuffer[frameBuff + 1] = (byte)((color565 & 0xFF)); } setWindow(0, y, image.PixelWidth, spilines); sendC(0x2C); sendD(framebuffer); y += spilines; } offset += spiblock * 2; var remainder = numPixelBytes % spiblock; if (remainder > 0) { byte[] framebuffer2 = new byte[remainder]; byte[] pixels = WindowsRuntimeBufferExtensions.ToArray(buffer, (uint)(offset), remainder * 2); for (int frameBuff = 0, source = 0; frameBuff < framebuffer2.Length; frameBuff += 2, source += 4) { int color565 = (((pixels[source + 0] & 0xF8) << 8) | ((pixels[source + 1] & 0xFC) << 3) | ((pixels[source + 2] & 0xF8) >> 3)); framebuffer2[frameBuff] = (byte)((color565 >> 8) & 0xFF); framebuffer2[frameBuff + 1] = (byte)((color565 & 0xFF)); } var linesLeft = image.PixelHeight - y; setWindow(0, y, image.PixelWidth, linesLeft); sendC(0x2C); sendD(framebuffer2); } }
public async Task CompressSession(bool deleteSourceFolder) { // The folder where a Session is stored. var folder = await Windows.Storage.ApplicationData.Current.LocalFolder.GetFolderAsync(Id.ToString()); var files = await folder.GetFilesAsync(); using (var memoryStream = new MemoryStream()) { // Create zip archive stream. using (var archive = new ZipArchive(memoryStream, ZipArchiveMode.Create)) { // For each file in the Session folder. foreach (var sessionFile in files) { // Store the contents of the file into a byte array. byte[] buffer = WindowsRuntimeBufferExtensions.ToArray(await FileIO.ReadBufferAsync(sessionFile)); // Create an entry in the archive. var entry = archive.CreateEntry(sessionFile.Name); // Open a stream to the new entry to write the buffer. using (var entryStream = entry.Open()) { await entryStream.WriteAsync(buffer, 0, buffer.Length); } } } // Attempt to find the zip file and delete if it exists. var item = await ApplicationData.Current.LocalFolder.TryGetItemAsync($"{Id.ToString()}.zip"); if (item != null) { await item.DeleteAsync(); } // Create the new zip file. var file = await ApplicationData.Current.LocalFolder.CreateFileAsync($"{Id.ToString()}.zip"); using (var fileStream = await file.OpenAsync(FileAccessMode.ReadWrite)) { // Write compressed data from memory to file using (var zipStream = fileStream.AsStreamForWrite()) { byte[] buffer = memoryStream.ToArray(); zipStream.Write(buffer, 0, buffer.Length); zipStream.Flush(); } } } // Delete the source folder after it's been compressed. if (deleteSourceFolder) { await folder.DeleteAsync(); } }
private void GattCharacteristic_ValueChanged(GattCharacteristic sender, GattValueChangedEventArgs args) { var valueBytes = WindowsRuntimeBufferExtensions.ToArray(args.CharacteristicValue); var dat = ByteArrayToNotificationSourceData(valueBytes); //We dont care about old notifications if (dat.EventFlags.HasFlag(EventFlags.EventFlagPreExisting)) { return; } ValueChanged?.Invoke(dat); }
async public Task <int> preparePaintingAreaCanvasPixel() { RenderTargetBitmap retarbi = new RenderTargetBitmap(); Canvas canvas = PocketPaintApplication.GetInstance().PaintingAreaCanvas; await retarbi.RenderAsync(canvas); Windows.Storage.Streams.IBuffer buffer = await(retarbi.GetPixelsAsync()); pixelsCanvas = WindowsRuntimeBufferExtensions.ToArray(buffer); this.pixelHeightCanvas = retarbi.PixelHeight; this.pixelWidthCanvas = retarbi.PixelWidth; return(0); }
private async Task <byte[]> GetWebData(Uri uri, bool bypassCahce) { HttpBaseProtocolFilter filter = new HttpBaseProtocolFilter(); if (bypassCahce) { filter.get_CacheControl().put_ReadBehavior((HttpCacheReadBehavior)1); } HttpClient client = new HttpClient((IHttpFilter)filter); IBuffer ibuff = await client.GetBufferAsync(uri); byte[] buff = WindowsRuntimeBufferExtensions.ToArray(ibuff); return(buff); }
private static async Task <JsonObject> makeJson(HttpResponseMessage response) { var contentBuffer = await response.Content.ReadAsBufferAsync(); var bytes = WindowsRuntimeBufferExtensions.ToArray(contentBuffer); var content = Encoding.UTF8.GetString(bytes); Debug.WriteLine(content); var rJson = new JsonObject(); JsonObject.TryParse(content, out rJson); return(rJson); }
/// <summary> /// 分享网页 /// </summary> /// <param name="title"></param> /// <param name="description"></param> /// <param name="url"></param> /// <param name="thumbnailUri"></param> /// <returns></returns> public static async Task ShareWebAsync(string title, string description, string url, string thumbnailUri) { if (!DeviceUtils.IsMobile) { ToastService.SendToast("PC上不支持微信分享"); return; } try { var scene = SendMessageToWX.Req.WXSceneChooseByUser; var message = new WXWebpageMessage { WebpageUrl = url, Title = title, Description = description }; if (!string.IsNullOrEmpty(thumbnailUri)) { IBuffer buffer = await HttpBaseService.GetBytesAsync(thumbnailUri); message.ThumbData = WindowsRuntimeBufferExtensions.ToArray(buffer); } else { var thumbnail = await StorageFile.GetFileFromApplicationUriAsync(new Uri("ms-appx:///Assets/Images/ic_logo.png")); using (var stream = await thumbnail.OpenReadAsync()) { byte[] pic = new byte[stream.Size]; await stream.AsStream().ReadAsync(pic, 0, pic.Length); message.ThumbData = pic; } } SendMessageToWX.Req req = new SendMessageToWX.Req(message, scene); IWXAPI api = WXAPIFactory.CreateWXAPI(APP_ID); await api.SendReq(req); } catch (WXException ex) { Debug.WriteLine(ex.Message); } }
public static async Task <string> GetNews(string page, string list) { //获取数据 HttpClient client = new HttpClient(); //client.Encoding = System.Text.Encoding.UTF8; //获取战队数据 //var json = await client.GetStringAsync(new Uri("http://qt.qq.com/php_cgi/lol_mobile/club/varcache_team_entrancev2.php?plat=android&version=9676")); //http://apps.game.qq.com/lol/act/website2013/videoApp.php?page=1&p1=0&p2=0&p3=0&p4=0&p5=0 精彩视频 //http://apps.game.qq.com/lol/act/website2013/videoApp.php?page=2&p1=0&p2=0&p3=0&p4=0&p5=0 //http://apps.game.qq.com/lol/act/website2013/videoApp.php?page=1&p1=0&p2=0&p3=0&p4=9999&p5=0 解说 //http://apps.game.qq.com/lol/act/website2013/videoApp.php?page=1&p1=0&p2=9999&p3=0&p4=0&p5=0 职业联赛 //http://apps.game.qq.com/lol/act/website2013/videoApp.php?page=1&p1=2&p2=0&p3=0&p4=0&p5=0 娱乐 //http://ossweb-img.qq.com/upload/qqtalk/lol_hero/hero_22.js 返回英雄数据 格式为json //http://ossweb-img.qq.com/upload/qqtalk/lol_hero/goods_list.js 返回物品列表 格式为json //list_2 3 4代表页面 c12代表常规页面 c13代表推荐页面 c73赛事 c18娱乐 c3官方 c17美女 c10攻略 c23活动 //拼接字符串 var apiUrl = string.Format("http://qt.qq.com/static/pages/news/phone/{0}_list_{1}.shtml", page, list); try { var json2 = await client.GetBufferAsync(new Uri(apiUrl)); //将ibuffer转变为byte[]; byte[] bytes = WindowsRuntimeBufferExtensions.ToArray(json2, 0, (int)json2.Length); //设置请求头 //从byte[]转为字符串; string str = System.Text.Encoding.UTF8.GetString(bytes); //返回的str带有/r换行符,无法识别 var str2 = cleanString(str); str2 = str2.Replace(" ", ""); return(str2); } catch (Exception e) { toast.Show(); return(null); } }
private async Task <WriteableBitmap> SaveRecognitionCanvas2(Canvas canvas, double width, double height) { //Create a temporary image file for the recognition canvas - recogCanvas.png StorageFolder pictureFolder = ApplicationData.Current.LocalFolder; var savefile = await pictureFolder.CreateFileAsync("recogCanvas.png", CreationCollisionOption.GenerateUniqueName); if (savefile == null) { return(null); } IRandomAccessStream stream = await savefile.OpenAsync(FileAccessMode.ReadWrite); //Retrieve the pixel data from the canvas RenderTargetBitmap renderBitmap = new RenderTargetBitmap(); await renderBitmap.RenderAsync(canvas, (int)width, (int)height); IBuffer x = await renderBitmap.GetPixelsAsync(); //Write the image pixels to a bitmap WriteableBitmap WBitmap = new WriteableBitmap((int)width, (int)height); byte[] pixelArray = WindowsRuntimeBufferExtensions.ToArray(x); //Reverse the array to write the rest of the pixel data, since writing can only start from the beginning of an array Array.Reverse(pixelArray); using (Stream pb = WBitmap.PixelBuffer.AsStream()) { //Write the remaing length of the pixels (the original array - first 7664640 values that were written) await pb.WriteAsync(pixelArray, 7664640, (int)x.Length - 7664640); } Stream pixelStream = WBitmap.PixelBuffer.AsStream(); byte[] pixels = new byte[pixelStream.Length]; var length = pixels.Length; await pixelStream.ReadAsync(pixels, 0, pixels.Length); // Save the image file with png extension so the image is transparent for merging BitmapEncoder encoder = await BitmapEncoder.CreateAsync(BitmapEncoder.PngEncoderId, stream); encoder.SetPixelData(BitmapPixelFormat.Bgra8, BitmapAlphaMode.Ignore, (uint)WBitmap.PixelWidth, (uint)WBitmap.PixelHeight, 96.0, 96.0, pixels); //Rotate the image 180 degreees, as it was written upside down due to reversing the pixel array encoder.BitmapTransform.Rotation = BitmapRotation.Clockwise180Degrees; await encoder.FlushAsync(); return(WBitmap); }
public async Task <bool> WriteBitmapToPngFileIsolatedStorage(WriteableBitmap bitmap, String filenameWithEnding) { //var file = await _pocketPaintFolder.CreateFileAsync(filenameWithEnding, //CreationCollisionOption.ReplaceExisting); //if (file == null) //{ // return false; //} // var stream = await file.OpenAsync(FileAccessMode.ReadWrite); //await bitmap.SetSourceAsync(stream); RenderTargetBitmap retarbi = new RenderTargetBitmap(); await retarbi.RenderAsync(PocketPaintApplication.GetInstance().PaintingAreaCanvas, (int)PocketPaintApplication.GetInstance().PaintingAreaCanvas.ActualWidth, (int)PocketPaintApplication.GetInstance().PaintingAreaCanvas.ActualHeight); Windows.Storage.Streams.IBuffer buffer = await(retarbi.GetPixelsAsync()); var pixels = WindowsRuntimeBufferExtensions.ToArray(buffer); StorageFile outputFile = await KnownFolders.PicturesLibrary.CreateFileAsync("myTestFile.png", CreationCollisionOption.ReplaceExisting); using (var writeStream = await outputFile.OpenAsync(FileAccessMode.ReadWrite)) { var encoder = await BitmapEncoder.CreateAsync(BitmapEncoder.PngEncoderId, writeStream); encoder.SetPixelData(BitmapPixelFormat.Bgra8, BitmapAlphaMode.Straight, (uint)retarbi.PixelWidth, (uint)retarbi.PixelHeight, 96, 96, pixels); await encoder.FlushAsync(); } // TODO: var img = bitmap.ToImage(); // TODO: var encoder = new PngEncoder(); // using (var s = await file.OpenStreamForWriteAsync()) // { // // // TODO: encoder.Encode(img, s); // // TODO s.Close(); // } return(true); }
/// <summary> /// Resolves the battery information. /// </summary> public async Task ReadDeviceBatteryInformationAsync() { if (_batteryInfoService != null) { IReadOnlyList <GattCharacteristic> characteristicList = _batteryInfoService.GetAllCharacteristics(); foreach (var characteristic in characteristicList) { if (characteristic.Uuid == GattCharacteristic.ConvertShortIdToUuid(IHSUuids.BatteryLevel)) { GattReadResult readResult = await characteristic.ReadValueAsync(); byte[] data = WindowsRuntimeBufferExtensions.ToArray(readResult.Value); // TODO: Store value } } } }
private byte[] HandleReceive(uint bytesRead, DataReader readPacket, int length = 1024 *1024 *5) { var bufferSpace = length * 2; byte[] tmpRet = new byte[length]; Windows.Storage.Streams.IBuffer ibuffer = readPacket.ReadBuffer(readPacket.UnconsumedBufferLength); Byte[] convBuffer = WindowsRuntimeBufferExtensions.ToArray(ibuffer); if (bytesRead > 0) { System.Buffer.BlockCopy(convBuffer, 0, tmpRet, (int)0, (int)length); } _transferredSize += bytesRead; var kucing = System.Text.Encoding.UTF8.GetString(tmpRet, 0, tmpRet.Length); WhatsAPI.UniversalApps.Libs.Utils.Logger.Log.WriteLog("Receive Message => " + System.Text.Encoding.UTF8.GetString(tmpRet, 0, tmpRet.Length)); return(tmpRet); }