Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk Menukar Rentetan Base64 kepada Imej dan Simpannya?

Bagaimana untuk Menukar Rentetan Base64 kepada Imej dan Simpannya?

Barbara Streisand
Barbara Streisandasal
2025-01-05 16:49:08798semak imbas

How to Convert a Base64 String to an Image and Save It?

Menukar Rentetan Base64 kepada Imej dan Menyimpannya

Apabila bekerja dengan imej berkod Base64, mungkin sukar untuk menukarnya menjadi fail imej sebenar. Untuk menangani perkara ini, mari kita terokai coretan kod yang diubah suai yang menukar rentetan Base64 dengan berkesan kepada imej dan menyimpannya untuk simpanan:

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();
    byte[] imageBytes;

    using (var br = new BinaryReader(responseStream))
    {
        var imageString = br.ReadString();
        imageBytes = Convert.FromBase64String(imageString);
    }

    responseStream.Close();
    imageResponse.Close();

    Image image = Image.FromStream(new MemoryStream(imageBytes));

    FileStream fs = new FileStream(saveLocation, FileMode.Create);
    image.Save(fs, ImageFormat.Png);
    fs.Close();
}

Dalam kod yang diubah suai ini:

  1. Penukaran Base64: Kami mengekstrak rentetan Base64 daripada aliran respons menggunakan br.ReadString().
  2. Penciptaan Objek Imej: Kami menukar rentetan Base64 kepada tatasusunan bait, yang kemudiannya digunakan untuk mencipta objek Imej.
  3. Penyimpanan Imej: Daripada menulis bait mentah pada fail, kami menyimpan objek imej terus ke lokasi yang dikehendaki menggunakan imej.Save(). Ini memastikan imej disimpan dalam format yang ditentukan (PNG dalam kes ini).

Atas ialah kandungan terperinci Bagaimana untuk Menukar Rentetan Base64 kepada Imej dan Simpannya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn