Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
 Аватар для ololo111
166 / 52 / 36
Регистрация: 13.04.2012
Сообщений: 620

Записать в переменную цвет пикселя по координатам на рабочем столе

20.07.2022, 10:59. Показов 760. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Как по заданным координатам считать цвет пикселя? на делфи это делалось в 2 строчки, по C# в инете нахожу во такие шифровки
Кликните здесь для просмотра всего текста
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
namespace pixelcolor
{
  /// <summary>
  /// Summary description for Form1.
  /// </summary>
  public class Form1 : System.Windows.Forms.Form
  {
 
 
    [DllImport("Gdi32.dll")]
    public static extern int GetPixel(
    System.IntPtr hdc,    // handle to DC
    int nXPos,  // x-coordinate of pixel
    int nYPos   // y-coordinate of pixel
    );
 
    [DllImport("User32.dll")]
    public static extern IntPtr GetDC(IntPtr wnd);
 
    [DllImport("User32.dll")]
    public static extern void ReleaseDC(IntPtr dc);
 
 
    private System.Windows.Forms.Panel panel1;
    private System.Timers.Timer timer1;
 
    /// <summary>
    /// Required designer variable.
    /// </summary>
    private System.ComponentModel.Container components = null;
 
    public Form1()
    {
      //
      // Required for Windows Form Designer support
      //
      InitializeComponent();
      this.SetStyle(ControlStyles.ResizeRedraw,true);
    }
 
    /// <summary>
    /// Clean up any resources being used.
    /// </summary>
    protected override void Dispose( bool disposing )
    {
      if( disposing )
      {
        if (components != null)
        {
          components.Dispose();
        }
      }
      base.Dispose( disposing );
    }
 
    #region Windows Form Designer generated code
    /// <summary>
    /// Required method for Designer support - do not modify
    /// the contents of this method with the code editor.
    /// </summary>
    private void InitializeComponent()
    {
      this.panel1 = new System.Windows.Forms.Panel();
      this.timer1 = new System.Timers.Timer();
      ((System.ComponentModel.ISupportInitialize)(this.timer1)).BeginInit();
      this.SuspendLayout();
      //
      // panel1
      //
      this.panel1.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
      this.panel1.Location = new System.Drawing.Point(216, 8);
      this.panel1.Name = "panel1";
      this.panel1.Size = new System.Drawing.Size(64, 56);
      this.panel1.TabIndex = 0;
      //
      // timer1
      //
      this.timer1.Enabled = true;
      this.timer1.SynchronizingObject = this;
      this.timer1.Elapsed += new System.Timers.ElapsedEventHandler(this.timer1_Elapsed);
      //
      // Form1
      //
      this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
      this.BackColor = System.Drawing.Color.White;
      this.ClientSize = new System.Drawing.Size(292, 273);
      this.Controls.Add(this.panel1);
      this.Name = "Form1";
      this.Text = "Form1";
      this.Paint += new System.Windows.Forms.PaintEventHandler(this.Form1_Paint);
      ((System.ComponentModel.ISupportInitialize)(this.timer1)).EndInit();
      this.ResumeLayout(false);
 
    }
    #endregion
 
    /// <summary>
    /// The main entry point for the application.
    /// </summary>
    [STAThread]
    static void Main()
    {
      Application.Run(new Form1());
    }
 
    private void Form1_Paint(object sender, System.Windows.Forms.PaintEventArgs e)
    {
      Random r=new Random(1);
 
      for(int x=0;x<100;x++)
      {
        SolidBrush b=new SolidBrush(Color.FromArgb(r.Next(255),r.Next(255),r.Next(255)));
        e.Graphics.FillRectangle(b,r.Next(this.ClientSize.Width),r.Next(this.ClientSize.Height),r.Next(100),r.Next(100));
      }
    }
 
    private void timer1_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
    {
      Point p=Control.MousePosition;
      IntPtr dc=GetDC(IntPtr.Zero);
      this.panel1.BackColor=ColorTranslator.FromWin32(GetPixel(dc,p.X,p.Y));
      ReleaseDC(dc);
    }
  }
}

Может есть какая ни будь команда по типу GetPixelColor(x,y)?
Нужно что бы цвет выводился или через код цвета в одном значении, или 3мя значениями R G B, главное что бы можно было данные цвета записать, а потом сравнить
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
20.07.2022, 10:59
Ответы с готовыми решениями:

Получить цвет пикселя по координатам
Подскажите, как можно получить цвет пикселя внутри окна? Или только robot.getPixelColor(x+winX,y+winY) Добавлено через 21 час 8...

Цвет пикселя HBITMAP по координатам
Есть HBITMAP . Как узнать цвет пикселя в формате RGB для координат X , Y. Можно пример кода пожалуйста?

Определить цвет пикселя по координатам
Определить цвета каждого из пикселей изображения,по координатам X и Y шагом в 5 пикселей по горизонтали и 3 пикселя по вертикали.Тоесть...

1
2287 / 1603 / 400
Регистрация: 26.06.2017
Сообщений: 4,748
Записей в блоге: 1
20.07.2022, 11:12
Лучший ответ Сообщение было отмечено ololo111 как решение

Решение

Цитата Сообщение от ololo111 Посмотреть сообщение
Как по заданным координатам считать цвет пикселя?
Полно решений, вот одно из них
C#
1
2
3
4
5
6
7
8
Bitmap bmp = new Bitmap(1, 1);
Color GetColorAt(int x, int y)
{
    Rectangle bounds = new Rectangle(x, y, 1, 1);
    using (Graphics g = Graphics.FromImage(bmp))
        g.CopyFromScreen(bounds.Location, Point.Empty, bounds.Size);
    return bmp.GetPixel(0, 0);
}
Использование
C#
1
System.Drawing.Color clr = GetColorAt(координата_Х, координата_Y);
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
20.07.2022, 11:12
Помогаю со студенческими работами здесь

Определить цвет пикселя на экране по координатам
Есть задача: Каждые полсекунды нужно определять цвет с экрана по координатам. Не в форме, а именно с экрана, то что там изображено на тот...

Определить цвет пикселя на экране по координатам
Есть задача: Каждые полсекунды нужно определять цвет с экрана по координатам. Не в форме, а именно с экрана, то что там изображено на тот...

ПРограмма определяет цвет пикселя по координатам
В dev c++ пишу программу, которая определяет координаты, где сейчас находится мышь и цвет пикселя, находящегося в этих координатах. Что...

Программы не запускаются на рабочем столе, ко всем ярлыкам на рабочем столе добавляется приставка .Ink
Помогите пожалуйста, использовал рекомендованную вами программу CureIT (нашел 18 вредоносных объектов) и вылечил, но проблема с рабочим...

Как по указанным координатам проверить цвет пикселя?
Как по указанным координатам проверить цвет пикселя, проверка должна идти в браузере. Помогите пожалуйста новичку)


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. В качестве источника данных. . .
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
Отправка уведомления на почту при создании или изменении элементов справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной записи электронной. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru