es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Arrays separados de RBG de una imagen en ASP.NET C#

Estoy tratando de obtener 3 matrices RGB de una imagen utilizando ASP.NET C#, no tengo idea de cómo hacer esto. Obtengo la imagen del archivo de tipo de entrada. Aquí está el código.

    [HttpPost]
    [ValidateAntiForgeryToken]
    public ActionResult Create([Bind(Include = "inFile")] tblImagen tblImagen, HttpPostedFileBase imagen)
    {
        if (imagen != null && imagen.ContentLength > 0)
        {
            byte[] imageData = null;
            using (var binaryreader = new BinaryReader(imagen.InputStream))
            {
                imageData = binaryreader.ReadBytes(imagen.ContentLength);
            }
    }
Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Para obtener las matrices RGB de una imagen utilizando ASP.NET C#, necesitarás utilizar una biblioteca de procesamiento de imágenes como OpenCV o AForge.NET. Aquí tienes un ejemplo de cómo puedes obtener las matrices RGB utilizando AForge.NET:

    if (imagen != null && imagen.ContentLength > 0)
    {
        byte[] imageData = null;
        using (var binaryreader = new BinaryReader(imagen.InputStream))
        {
            imageData = binaryreader.ReadBytes(imagen.ContentLength);
        }
    
        // Cargar la imagen desde el arreglo de bytes
        var bitmap = new Bitmap(new MemoryStream(imageData));
    
        // Convertir la imagen al formato RGB
        var rgbImage = bitmap.Clone(new Rectangle(0, 0, bitmap.Width, bitmap.Height), PixelFormat.Format24bppRgb);
    
        // Obtener las matrices RGB
        var redArray = new byte[rgbImage.Width * rgbImage.Height];
        var greenArray = new byte[rgbImage.Width * rgbImage.Height];
        var blueArray = new byte[rgbImage.Width * rgbImage.Height];
        int index = 0;
        for (int y = 0; y < rgbImage.Height; y++)
        {
            for (int x = 0; x < rgbImage.Width; x++)
            {
                var pixel = rgbImage.GetPixel(x, y);
                redArray[index] = pixel.R;
                greenArray[index] = pixel.G;
                blueArray[index] = pixel.B;
                index++;
            }
        }
    }
    

    En este código, primero cargamos la imagen desde el arreglo de bytes utilizando un objeto Bitmap. Luego, convertimos la imagen al formato RGB utilizando el método Clone. Finalmente, recorremos cada píxel de la imagen y extraemos los valores de rojo, verde y azul en matrices separadas. Estas matrices pueden ser utilizadas para realizar un procesamiento de imágenes adicional.

Comments are closed.