如何将图像转换为Base64字符串?

时间:2018-06-20 16:58:24

标签: c#

我有一个弹出文件浏览器的表单,选择后应获取所选文件的路径,然后将该图像转换为字符串。我有以下代码:

string sfn = "";
OpenFileDialog ofD = new OpenFileDialog();
if (ofD.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{
    sfn = ofD.FileName;
}

string imagePathway = sfn;
string imageToText = GetImageText(imagePathway);
label1.Text = imageToText;

然后使用GetImageText函数:

private string GetImageText(string path)
{
    byte[] imageByte = System.IO.File.ReadAllBytes(path);
    string convertedString = Convert.ToBase64String(imageByte);
    return convertedString;
}

没有错误发生,但是标签没有显示文本,所以我认为编码过程存在问题。

1 个答案:

答案 0 :(得分:0)

这个问题不是很清楚,但是如果您要将图像转换为字符串以便发送(例如tpc / ip连接),则可以将图像另存为位图并将其保存在MemoryStream中

Bitmap bmp = new Bitmap(@"Your file path");
MemoryStream mem_stream= new MemoryStream();
bmp.Save(mem_stream, System.Drawing.Imaging.ImageFormat.Bmp);

现在您在MemoryStream中具有图像了,您可以按字节或字符串访问它。

图像只是像素阵列,因此您可以将它们另存为字符串,甚至可以使用rgb值(例如(r11 * g12 * b13 * r21 * g22 * b23 * ....))保存它们,其中1, 2,3是像素的行/列的索引。

*抱歉,如果我误解了这个问题。