[英]How can I convert String (which is actually Bitmap) to IFormFile in asp.net core 1.0 c#
基本上我要做的是发送一个位图字符串(我转换为字符串)并将 t 发送到 Asp.net 核心 1.0 web 应用程序/api。 我想将该图像保存到托管应用程序文件中,并将该图像的路径保存到数据库中,但我不明白如何将该字符串转换为 IFormFile,以便将其复制到特定路径。
List<byte> splitBytes = new List<byte>();
string byteString = "";
foreach (var chr in obj.bitmapstr)
{
byteString += chr;
if (byteString.Length == 3)
{
splitBytes.Add(Convert.ToByte(byteString));
byteString = "";
}
}
if (byteString != "")
splitBytes.AddRange(Encoding.ASCII.GetBytes(byteString));
using (var ms = new MemoryStream(splitBytes.ToArray()))
{
// SixLabors.ImageSharp.Image img = SixLabors.ImageSharp.Image.FromStream()
// ms.Write(splitBytes.ToArray(), 0, splitBytes.ToArray().Length);
// var img = System.Drawing.Image.FromStream(ms);
//do something with image.
}
我尝试将其转换为字节数组,但不知道该怎么做。
Uri path=data.getData();
Bitmap bitmap=MediaStore.Images.Media.getBitmap(getActivity().getContentResolver(),path);
phtotimage.setImageBitmap(bitmap);
phtotimage.setVisibility(View.VISIBLE);
String bitMapToString=BitMapToString(bitmap);
getconnection("url",bitMapToString);
这是 android 工作室中获取文件并将其转换为字符串并传递该文件的代码
Bitmap
bitmap
是一种用于存储数字图像的 memory 组织或图像文件格式。 术语 bitmap 来自计算机编程术语,意思a map of bits
,空间映射的位数组。 现在,与 pixmap 一起,它通常指代像素空间映射数组的类似概念。
它是"raw"
图像文件,它存储没有header
、 size
或其他信息的原始位图。
表格文件
同时, IFormFile
具有以下结构:
public interface IFormFile
{
string ContentType { get; }
string ContentDisposition { get; }
IHeaderDictionary Headers { get; }
long Length { get; }
string Name { get; }
string FileName { get; }
Stream OpenReadStream();
void CopyTo(Stream target);
Task CopyToAsync(Stream target, CancellationToken cancellationToken = null);
}
从这里,您可以看到String
( =Bitmap
) 和IFormFile
之间的区别。 所以这不会像你期望的那样转化成功。
将 base64 字符串转换为 FormFile
using (var stream = System.IO.File.WriteAllBytes(@"c:\yourfile", Convert.FromBase64String(bitmapstr)))
{
var formFile = new FormFile(stream, 0, stream.Length, null, Path.GetFileName(stream.Name))
{
Headers = new HeaderDictionary(),
ContentType = "YOUR CONTENT TYPE HERE"
};
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.