C#: comment convertir le tableau Bitmap byte au format JPEG?
Comment puis-je convertir un BITMAP au format byte array au format JPEG en utilisant .net 2.0?
3 réponses
quel type de byte[]
voulez-vous dire? Les données brutes du flux de fichiers? Dans ce cas, Que diriez-vous de quelque chose comme (en utilisant System.Drawing.dll
dans une application client):
using(Image img = Image.FromFile("foo.bmp"))
{
img.Save("foo.jpg", ImageFormat.Jpeg);
}
Ou utiliser FromStream
avec un new MemoryStream(arr)
si vous avez vraiment un byte[]
:
byte[] raw = ...todo // File.ReadAllBytes("foo.bmp");
using(Image img = Image.FromStream(new MemoryStream(raw)))
{
img.Save("foo.jpg", ImageFormat.Jpeg);
}
S'il ne s'agit que d'une mémoire tampon de données brutes, et non d'un fichier image complet(y compris les en-têtes, etc., comme un JPEG) alors vous ne pouvez pas utiliser L'Image.FromStream.
je pense que ce que vous cherchez peut-être C'est le système.Dessin.Bitmap.LockBits, retour D'un système.Dessin.L'imagerie.ImageData; permet d'accéder à la lecture et à l'écriture des pixels de l'image à l'aide d'un pointeur vers la mémoire.
public static Bitmap BytesToBitmap(byte[] byteArray)
{
using (MemoryStream ms = new MemoryStream(byteArray))
{
Bitmap img = (Bitmap)Image.FromStream(ms);
return img;
}
}