[c#] تحويل سلسلة 64 قاعدة إلى صورة وحفظها



Answers

يمكنك حفظ Base64 مباشرة في الملف:

string filePath = "MyImage.jpg";
File.WriteAllBytes(filePath, Convert.FromBase64String(base64imageString));
Question

هنا الكود:

protected void SaveMyImage_Click(object sender, EventArgs e)
        {
            string imageUrl = Hidden1.Value;
            string saveLocation = Server.MapPath("~/PictureUploads/whatever2.png") ; 


            HttpWebRequest imageRequest = (HttpWebRequest)WebRequest.Create(imageUrl);
            WebResponse imageResponse = imageRequest.GetResponse();

            Stream responseStream = imageResponse.GetResponseStream();

            using (BinaryReader br = new BinaryReader(responseStream))
            {
                imageBytes = br.ReadBytes(500000);
                br.Close();
            }
            responseStream.Close();
            imageResponse.Close();

            FileStream fs = new FileStream(saveLocation, FileMode.Create);
            BinaryWriter bw = new BinaryWriter(fs);
            try
            {
                bw.Write(imageBytes);
            }
            finally
            {
                fs.Close();
                bw.Close();
            }
        }
}

تأخذ الصورة top imageUrl سلسلة سلسلة Base64 ، وأريد تحويلها إلى صورة. أعتقد أن مجموعة التعليمات البرمجية الخاصة بي تعمل فقط مع الصور مثل "www.mysite.com/test.jpg" ليس لسلسلة Base64. أي شخص لديه بعض الاقتراحات؟ شكر!




أقترح عبر الصورة النقطية:

public void SaveImage(string base64)
{
    using (MemoryStream ms = new MemoryStream(Convert.FromBase64String(base64)))
    {
        using (Bitmap bm2 = new Bitmap(ms))
        {
            bm2.Save("SavingPath" + "ImageName.jpg");
        }
    }
}



في حالتي يعمل فقط مع خطين من التعليمات البرمجية. اختبر رمز C # أدناه:

String dirPath = "C:\myfolder\";
String imgName = "my_mage_name.bmp";

byte[] imgByteArray = Convert.FromBase64String("your_base64_string");
File.WriteAllBytes(dirPath + imgName, imgByteArray);

هذا هو. يرجى التصويت إذا وجدت أن هذا الحل مناسب لك. شكرا مقدما.




إليك رمز العمل لتحويل صورة من سلسلة base64 إلى كائن Image وتخزينها في مجلد باسم ملف فريد:

public void SaveImage()
{
    string strm = "R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7"; 

    //this is a simple white background image
    var myfilename= string.Format(@"{0}", Guid.NewGuid());

    //Generate unique filename
    string filepath= "~/UserImages/" + myfilename+ ".jpeg";
    var bytess = Convert.FromBase64String(strm);
    using (var imageFile = new FileStream(filepath, FileMode.Create))
    {
        imageFile.Write(bytess, 0, bytess.Length);
        imageFile.Flush();
    }
}



Links