Comment convertir une image d'un chemin sur l'ordinateur de l'utilisateur en une chaîne base64 en C #?
Par exemple, j'ai le chemin d'accès à l'image (au format C:/image/1.gif
) et j'aimerais avoir un URI de données comme data:image/gif;base64,/9j/4AAQSkZJRgABAgEAYABgAAD..
représentant l' 1.gif
image retournée.
Réponses:
Essaye ça
la source
image.RawFormat
.RawFormat
n'est pas un spécificateur de format d'image; c'est une propriété de l'image
objet, qui renvoie le format dans lequel l'image était lorsqu'elle a été lue à partir d'un fichier , ce qui signifie que dans ce cas, elle renverrait le format gif. Donc, cela ne change rien, sauf qu'au lieu des octets du fichier d'origine, vous avez les octets de l'image comme réenregistrés en gif par le framework .Net.Obtenez la
byte[]
représentation tableau d'octets ( ) de l'image, puis utilisezConvert.ToBase64String()
, st. comme ça:Pour reconvertir une image base4 en System.Drawing.Image:
la source
System.Drawing.Image
vous pouvez utiliser st. comme ça:var img = Image.FromStream(new MemoryStream(Convert.FromBase64String(base64String)));
Puisque la plupart d'entre nous aiment les oneliners:
Si vous en avez besoin en tant que tableau d'octets Base64:
la source
Bien que la réponse la plus compliquée soit correcte, je trouve que c'est beaucoup mieux
C'est simple, vous n'avez pas besoin de réenregistrer et gère différents formats
la source
Voici le cours que j'ai écrit à cet effet:
la source
Vous pouvez facilement passer le chemin de l'image pour récupérer la chaîne base64
J'espère que cela aidera.
la source
_image.RawFormat
) mais expose les données en tant que type mimeimage/jpg
Vous pouvez utiliser le
Server.Map
chemin pour donner un chemin relatif, puis vous pouvez soit créer une image en utilisant labase64
conversion, soit simplement ajouter unebase64
chaîne àimage src
.la source
De cette façon, c'est plus simple, où vous passez l'image, puis passez le format.
la source
Le morceau de code suivant fonctionne pour moi:
la source
Basé sur la réponse la plus votée, mis à jour pour C # 8. Les éléments suivants peuvent être utilisés prêts à l'emploi. Ajouté explicite
System.Drawing
avantImage
car on pourrait utiliser cette classe à partir d'un autre espace de noms par défaut.la source
Vous pouvez le convertir comme ça
Production
la source
Quelque chose comme ca
la source
C#
étiquette sur la question?