簡體   English   中英

如何在 asp.net 核心 1.0 c# 中將字符串(實際上是位圖)轉換為 IFormFile

[英]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"圖像文件,它存儲沒有headersize或其他信息的原始位圖。

表格文件

同時, 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM