虽然拖放的图像,我需要转换为StorageFile的BitmapImage上传它。
DataPackageView dataPackageView = Clipboard.GetContent();
if (dataPackageView.Contains(StandardDataFormats.Bitmap))
{
RandomAccessStreamReference img = await dataPackageView.GetBitmapAsync();
var imgstream = await img.OpenReadAsync();
BitmapImage bitmap = new BitmapImage();
bitmap.SetSource(imgstream);
StorageFile file = await StorageFile.GetFileFromApplicationUriAsync(new Uri(bitmap.UriSource.ToString()));
IUploadFileModel _uploadModel = ObjFactory.Instance.CreateUploadFileModel();
_uploadModel.UploadFileAsync(file, user, OpenChatData.TeamID.ToString(), _isReadReceiptEnabled);
}发布于 2020-06-30 10:23:57
您不必将从剪贴板获取的数据转换为BitmapImage,您可以直接操作获取的RandomAccessStreamReference,并将其保存为本地文件,然后上传文件
var data = Clipboard.GetContent();
if (data.Contains(StandardDataFormats.Bitmap))
{
var img = await data.GetBitmapAsync();
var imgstream = await img.OpenReadAsync();
string type = imgstream.ContentType;
string extension = type.Replace("image/", "");
var file = await ApplicationData.Current.LocalFolder.CreateFileAsync($"temp.{extension}", CreationCollisionOption.ReplaceExisting);
byte[] buffer = new byte[imgstream.Size];
await imgstream.ReadAsync(buffer.AsBuffer(), (uint)imgstream.Size, InputStreamOptions.None);
await FileIO.WriteBytesAsync(file, buffer);
// upload file
}谢谢。
https://stackoverflow.com/questions/62645676
复制相似问题