Jak przekonwertować obraz ze ścieżki na komputerze użytkownika na ciąg base64 w języku C #?
Na przykład mam ścieżkę do obrazu (w formacie C:/image/1.gif
) i chciałbym mieć identyfikator URI danych, taki jak data:image/gif;base64,/9j/4AAQSkZJRgABAgEAYABgAAD..
reprezentujący 1.gif
zwrócony obraz.
Odpowiedzi:
Spróbuj tego
źródło
image.RawFormat
.RawFormat
nie jest specyfikatorem formatu obrazu; jest to właściwośćimage
obiektu, która zwraca format obrazu podczas odczytu z pliku , co oznacza, że w tym przypadku zwróci format gif. Więc to nic nie zmienia, z wyjątkiem tego, że zamiast rzeczywistych bajtów oryginalnego pliku masz bajty obrazu ponownie zapisane do gif przez framework .Net.Pobierz
byte[]
reprezentację obrazu w postaci tablicy bajtów ( ), a następnie użyjConvert.ToBase64String()
, st. lubię to:Aby przekonwertować obraz base4 z powrotem na System.Drawing.Image:
źródło
System.Drawing.Image
możesz użyć st. tak:var img = Image.FromStream(new MemoryStream(Convert.FromBase64String(base64String)));
Ponieważ większość z nas lubi onelinery:
Jeśli potrzebujesz go jako tablicy bajtów Base64:
źródło
Chociaż bardziej skomplikowana odpowiedź jest w porządku, uważam, że jest o wiele lepsza
Jest to proste, nie ma potrzeby ponownego zapisywania i obsługuje różne formaty
źródło
Oto klasa, którą napisałem w tym celu:
źródło
Możesz łatwo podać ścieżkę obrazu, aby pobrać ciąg base64
Mam nadzieję, że to pomoże.
źródło
_image.RawFormat
), ale ujawnia dane jako typ MIMEimage/jpg
Możesz użyć
Server.Map
path, aby podać ścieżkę względną, a następnie możesz utworzyć obraz za pomocąbase64
konwersji lub po prostu dodaćbase64
ciąg doimage src
.źródło
W ten sposób jest prostsze, gdy przekazujesz obraz, a następnie przekazujesz format.
źródło
U mnie działa następujący fragment kodu:
źródło
W oparciu o najczęściej głosowaną odpowiedź, zaktualizowany dla języka C # 8. Następujących można używać po wyjęciu z pudełka. Dodano wyraźnie
System.Drawing
wcześniej,Image
ponieważ można domyślnie używać tej klasy z innej przestrzeni nazw.źródło
Możesz to przekonwertować w ten sposób
Wynik
źródło
Coś w tym stylu
źródło
C#
tag w pytaniu?