ventajas vectorial usos que mapa imagen formatos formato entre diferencia desventajas corel caracteristicas c# .net image

c# - usos - mapa vectorial



Conversión de formatos de píxeles de mapa de bits en C# (3)

Por alguna razón, si crea un Bitmap de Bitmap partir de una ruta de archivo, es decir, Bitmap bmp = new Bitmap("myimage.jpg"); y llama a Clone() , el Bitmap devuelto no se convertirá.

Sin embargo, si crea otro Bitmap de Bitmap partir de su Bitmap , Clone() funcionará según lo previsto.

Pruebe algo como esto:

using (Bitmap oldBmp = new Bitmap("myimage.jpg")) using (Bitmap newBmp = new Bitmap(oldBmp)) using (Bitmap targetBmp = newBmp.Clone(new Rectangle(0, 0, newBmp.Width, newBmp.Height), PixelFormat.Format32bppArgb)) { // targetBmp is now in the desired format. }

Necesito convertir un mapa de bits de PixelFormat.Format32bppRgb a PixelFormat.Format32bppArgb .

Esperaba usar Bitmap.Clone, pero parece que no funciona.

Bitmap orig = new Bitmap("orig.bmp"); Bitmap clone = orig.Clone(new Rectangle(0,0,orig.Width,orig.Height), PixelFormat.Format24bppArgb);

Si ejecuto el código anterior y luego compruebo clone.PixelFormat, se establece en PixelFormat.Format32bppRgb . ¿Qué está pasando / cómo convierto el formato?


Sloppy, no es raro para GDI +. Esto lo arregla:

Bitmap orig = new Bitmap(@"c:/temp/24bpp.bmp"); Bitmap clone = new Bitmap(orig.Width, orig.Height, System.Drawing.Imaging.PixelFormat.Format32bppPArgb); using (Graphics gr = Graphics.FromImage(clone)) { gr.DrawImage(orig, new Rectangle(0, 0, clone.Width, clone.Height)); } // Dispose orig as necessary...


using (var bmp = new Bitmap(width, height, PixelFormat.Format24bppArgb)) using (var g = Graphics.FromImage(bmp)) { g.DrawImage(..); }

Debería funcionar así. Tal vez quiera establecer algunos parámetros en g para definir el modo de interpolación para calidad, etc.