CLR: .Net / Mono / Boo / Otros CLR > C#

 modificar colores especificos de una pictureBox

(1/2) > >>

computadora:
lo que quiero es poder modificar los colores ( rojo, azul, verde) de mi picturebox1
especificamente, quiero saber como recorer el picturebox1 para que dentro de su color (RGB) le pueda modificar, por decir el azul y se cambien algunos colores

hasta ahora tengo un radiobutton para cada color, y un combobox que mide el nivel (1-2-3) de cambio a aplicarse pero no puedo avanzar porque no se lo anterior

gracias de antemano :)

Jeysscarr:
Yo hice como un minipromita para ver como se hacia por tu pregunta, y si se puede.... aqui esta mas o menos la idea principal
conviertes la imagen a un bitmap
estableces que color quieres cambiar y determinas que nuevo valor, despues recorres la matriz de pixeles... por eso el nombre "mapa de bits"
con respecto a su tamaño y en donde encuentres coincidencia haces el cambio. Te dejo una imagen de lo que me idee.. espero te sirva

--- Código: C# ---                 Color buscado = <COLORBUSCADOPARCAMBIAR>;                Color nuevoColor = <NUEVOCOLOR>;                                  Bitmap b=<ASIGNACION>;                 for (int i = 0; i <= b.PhysicalDimension .Width-1; i++)                {                    for (int j = 0; j <= b.PhysicalDimension .Height-1; j++)                    {                        if (b.GetPixel(i, j).ToArgb().Equals (buscado))                        {                            b.SetPixel(i, j, nuevoColor);                                                    }                    }                }//ya aqui el bitmap es distinto  
Este e el cofigo real:

--- Código: C# ---using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms; namespace ModificarLosColores{    public partial class Form1 : Form    {        Bitmap b = null;        public Form1()        {            InitializeComponent();            b = (Bitmap)pictureBox1.Image;        }                private void pictureBox1_MouseMove(object sender, MouseEventArgs e)        {            try            {                 Color MiColor = b.GetPixel(e.X, e.Y);                pictureBox2.BackColor = MiColor;            }            catch            {            }         }         private void pictureBox1_MouseDown(object sender, MouseEventArgs e)        {            try            {                 Color MiColor = b.GetPixel(e.X, e.Y);                pictureBox3.BackColor = MiColor;            }            catch            {            }        }         private void button1_Click(object sender, EventArgs e)        {                          Color buscado = pictureBox3.BackColor;                Color cambio = Color.FromArgb(255, (int)numericUpDown1.Value, (int)numericUpDown2.Value, (int)numericUpDown3.Value);                for (int i = 10; i <= b.PhysicalDimension .Width-10; i++)                {                    for (int j = 10; j <= b.PhysicalDimension .Height-10; j++)                    {                        if (b.GetPixel(i, j).ToArgb().Equals (buscado.ToArgb ()))                        {                            b.SetPixel(i, j, cambio);                                                    }                    }                }                pictureBox1.Image = b;                               }    }}  

computadora:
muchisimas gracias por tu ayuda, me sirvio mucho

sola una duda, si quisiera guardar en un int diferentes los valores red, green y blue del color seleccionado, como lo podria hacer??

gracias nuevamente

Jeysscarr:
Algo como esto?


--- Código: C# ---int R=Tucolor.toArgb.R;int G=Tucolor.toArgb.G;int B=TUcolor.toArgb.B; 

computadora:
gracias, era lo que buscaba
solo que lo que puse es lo siguiente:

  int red = aCambiar.R;
                        int green = aCambiar.G;
                        int blue = aCambiar.B;

y funciona bien, solo que esto lo puse en un pictureBox1_MouseMove y necesito usar el valor de red en button4_Click
que puedo hacer?

muchisimas gracias

Navegación

[0] Índice de Mensajes

[#] Página Siguiente

Ir a la versión completa