2017-01-12 7 views
-4

In C# verwende ich den folgenden Code, um BMP-Bild von Festplatte zu lesen, dann wandeln Sie es in Byte-Array konvertieren Sie dann das Array zu Base64-String.Convert 8 Bit BMP-Bild zu Base64 String

meine Frage ist, wie man das in C++ macht? Das Bild ist 8-Bit-Tiefe

hier ist mein C# -Code

System.Drawing.Image temp = System.Drawing.Image.FromFile(path); 
System.Drawing.ImageConverter converter = new ImageConverter(); 
String imgString = Convert.ToBase64String((byte[])converter.ConvertTo(temp, typeof(byte[]))); 
+2

Wie in C#. Datei lesen, mit http://www.adp-gmbh.ch/cpp/common/base64.html encodieren und fertig. – jamek

+2

@RawN Meinten Sie, das C# -Tag entfernen? OP möchte das in C++ machen. – Borgleader

+0

http://www.adp-gmbh.ch/cpp/common/base64.html – Bauss

Antwort

0

Sie benötigen Bibliotheken von Drittanbietern nutzen - es gibt keine "Standard" Base64-Codierung in C++ wie es in .NET ist.

Es gibt Links und ein Ausschnitt auf Base64-Codierung in C++ hier: base64 decode snippet in c++

Die folgende (ungetestet) Code, um die base64-Bibliothek verknüpft durch Bauss verwenden, sollten das tun, was Sie wollen.

#include <fstream> 
#include <iostream> 
#include <iterator> 
#include <string> 
#include <vector> 

#include "base64.h" //http://www.adp-gmbh.ch/cpp/common/base64.html 

using namespace std; 
string encodeFile(string file) 
{ 
    ifstream input(file, ios::binary); 
    vector<char> rawData(istreambuf_iterator<char>(input), istreambuf_iterator<char>()); 
    return base64_encode(&rawData[0], rawData.size()); 
}