C# - 查找并将图像路径转换为base64

时间:2015-10-09 03:24:59

标签: c# image base64 byte

我正在处理任务,我试图将图像转换为base64但是在这里尝试了一些示例后,我收到一条错误消息,指出字节不能超过无穷大,并且课堂上有人建议我应该导出图像路径。

下面是我打开图片的代码

      private void button1_Click(object sender, EventArgs e)
    {
        Stream myStream = null;
        OpenFileDialog openFileDialog1 = new OpenFileDialog();

        openFileDialog1.Filter = "PNG Files (.png)|*.png|JPEG Files (.jpg)|*.jpg";
        openFileDialog1.FilterIndex = 2;

        if (openFileDialog1.ShowDialog() == DialogResult.OK)
        {

            Bitmap loadedImage = new Bitmap(openFileDialog1.FileName);
            setImage.Size = loadedImage.Size;
            setImage.BackgroundImage = loadedImage;

            imageWidth.Text = loadedImage.Size.Width.ToString();
            imageHeight.Text = loadedImage.Size.Height.ToString();


            try
            {
                if ((myStream = openFileDialog1.OpenFile()) != null)
                {
                    using (myStream)
                    {
                        // Insert code to read the stream here.
                    }
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show("Error: Could not read file from disk. Original error: " + ex.Message);
            }
        }         
    }

打开图像后,我需要能够将图像的尺寸导出为XML,但我也想在那里导出图像路径。

以下是我用来导出的代码,因为您可以看到我还没有完成图片导出,因为我不确定该怎么做

        private void exportButton_Click(object sender, EventArgs e)
    {
        DataSet ds = new DataSet();
        DataTable xyPos = new DataTable();
        xyPos.TableName = "Position";
        xyPos.Columns.Add("X");
        xyPos.Columns.Add("Y");
        ds.Tables.Add(xyPos);

        DataTable whDimen = new DataTable();
        whDimen.TableName = "Dimensions";
        whDimen.Columns.Add("Width");
        whDimen.Columns.Add("Height");
        ds.Tables.Add(whDimen);

        DataTable loadImage = new DataTable();
        loadImage.TableName = "LoadedImage";
        loadImage.Columns.Add("Image");
        ds.Tables.Add(loadImage);


        DataRow posRow = ds.Tables["Position"].NewRow();
        posRow["X"] = Xcoord.Text;
        posRow["Y"] = Ycoord.Text;
        ds.Tables["Position"].Rows.Add(posRow);

        DataRow dimenRow = ds.Tables["Dimensions"].NewRow();
        dimenRow["Width"] = imageWidth.Text;
        dimenRow["Height"] = imageHeight.Text;
        ds.Tables["Dimensions"].Rows.Add(dimenRow);


        //Export Image
        DataRow imageRow = ds.Tables["LoadedImage"].NewRow();
        imageRow["Image"] = setImage.BackgroundImage;




        //ImageConverter imgConvert = new ImageConverter();
        //byte[] imgByte = (byte[])imgConvert.ConvertTo(imageRow["Image"], typeof(byte[]));
        //Convert.ToBase64String(imgByte);

        //Convert.ToBase64String((byte[])imageRow["Image"]);
        ds.Tables["LoadedImage"].Rows.Add(imageArray);


        ds.WriteXml("XMLFile1.xml");
    }

0 个答案:

没有答案