我從頭像的圖像裁剪圓形區域。我需要獲取圖像的像素字節[]並以base64格式上傳到服務器。不幸的是,方法SaveJpeg()不支持所選圓外的透明度像素。我試過ImageTools庫,但沒有其他平臺,除了WindowsPhone無法從生成的字節[]中創建png圖像。有沒有辦法做到這一點?如何將WriteableBitmap保存爲帶有透明度的png圖像
1
A
回答
2
1
此代碼爲我工作。在嘗試之前,請確保您的writablebitmap具有透明背景(您可以通過分配給圖像控制器圖像源進行檢查)。如果沒有,則使來自其的控制器透明。
var localFolder = Windows.Storage.ApplicationData.Current.LocalFolder;
var file = await localFolder.CreateFileAsync("temp.png", CreationCollisionOption.ReplaceExisting);
using (var ras = await file.OpenAsync(FileAccessMode.ReadWrite, StorageOpenOptions.None))
{
WriteableBitmap bitmap = imageSource;
var stream = bitmap.PixelBuffer.AsStream();
byte[] buffer = new byte[stream.Length];
await stream.ReadAsync(buffer, 0, buffer.Length);
BitmapEncoder encoder = await BitmapEncoder.CreateAsync(BitmapEncoder.PngEncoderId, ras);
encoder.SetPixelData(BitmapPixelFormat.Bgra8, BitmapAlphaMode.Straight, (uint)bitmap.PixelWidth, (uint)bitmap.PixelHeight, 96.0, 96.0, buffer);
await encoder.FlushAsync();
}
看看吧!
相關問題
- 1. 將WriteableBitmap保存爲PNG
- 2. 在Delphi 2007中保存帶有PNG透明度的位圖
- 3. php png圖像透明度
- 4. 將透明度的png圖像轉換爲jpg破壞圖像
- 5. 具有透明度PNG圖像中IE9
- 6. 將SWF轉換爲具有透明度的PNG圖像
- 7. 如何保持ScaleImageLabel的PNG圖像的透明度?
- 8. 將透明PNG圖像轉換爲透明JPEG或透明GIF
- 9. 旋轉PNG,然後使用圖像透明度重新保存
- 10. 如何在透明度調整.NET圖像透明度,GIF和PNG,保持透明度信息
- 11. 合併兩個PNG圖像的透明度和保持透明度
- 12. 帶有透明度的圖像按鈕
- 13. 帶有透明區域的C#PNG圖像作爲按鈕
- 14. PNG - 保留透明度
- 15. PNG圖像透明度的瀏覽器
- 16. 如何將UIControl以不透明方式正確保存到WriteableBitmap?
- 17. 如何使用ImageMagick將透明度添加到PNG圖像
- 18. 覆蓋PNG圖像保持透明
- 19. WPF WriteableBitmap透明度問題
- 20. 透明度問題與PNG圖像
- 21. 如何將畫布顯示保存爲透明PNG?
- 22. J2ME:將透明PNG圖像轉換爲灰度
- 23. PNG透明度
- 24. 將PSD圖層保存爲帶有Imagick的PNG/JPG,具體取決於透明度
- 25. Graphics32 - 將透明繪圖層保存爲PNG
- 26. 將具有每像素透明度的PNG-24轉換爲PNG-8
- 27. 帶有透明部分的PNG圖像的CSS邊框
- 28. HTML PNG圖像透明
- 29. 透明PNG圖像與TImageList
- 30. 將位圖保存爲ICO文件,具有透明度
也許PngCs幫助? https://code.google.com/p/pngcs/ – leonbloy 2013-04-22 18:03:20