c# - example - system.drawing dll
Image.Save() lanza la excepción "El valor no puede ser nulo./r/nNombre de parámetro: codificador" (2)
Puedes usar esto y será arreglado:
image.Save(stream,ImageFormat.Jpeg);
Recibo el error "El valor no puede ser nulo. / R / n Nombre de parámetro: codificador" al guardar una imagen de mapa de bits con RawFormat Código de muestra:
class Program
{
static void Main(string[] args)
{
try
{
var image = new System.Drawing.Bitmap(500, 400);
var stream = new MemoryStream();
image.Save(stream, image.RawFormat);
}
catch (Exception exp)
{
Console.WriteLine(exp.ToString());
}
}
}
RawFormat no existe en la lista existente de ImageEncoders, ya que el código que aparece a continuación devuelve un valor nulo.
var imageCodecInfo = ImageCodecInfo.GetImageEncoders().FirstOrDefault(codec => codec.FormatID == image.RawFormat.Guid);
Nota: La imagen puede ser de cualquier tipo (JPEG, BMP, PNG), etc. Image.Save () debería funcionar en image.RawFormat. RawFormat no es un tipo de mapa de bits. Si cambio image.RawFormat a ImageFormat.Bmp, la operación de guardado se realiza correctamente.
Consulte los siguientes enlaces, pero no encontró nada para que sea independiente del tipo de imagen.
Image.Save crashhing: {"El valor no puede ser nulo. / R / n Nombre de parámetro: codificador"} ¿Por qué Image.Save (Stream, ImageFormat) está lanzando una excepción?
Cualquier sugerencia es bienvenida.
Si carga una imagen desde el disco, puede usar image.RawFormat
para guardar esa imagen en su formato original. Sin embargo, no hay ningún codificador asociado con un mapa de bits en memoria (que es lo que está creando en esta aplicación de muestra), por lo que deberá especificar un formato de imagen (es decir, ImageFormat.Bmp
).