블로그 이미지
Every unexpected event is a path to learning for you.

카테고리

분류 전체보기 (2323)N
Unity3D (568)N
Programming (472)
Unreal (4)
Gamebryo (56)
Tip & Tech (184)
협업 (34)
3DS Max (3)
Game (12)
Utility (116)
Etc (92)
Link (31)
Portfolio (19)
Subject (90)
iOS,OSX (38)
Android (13)
Linux (5)
잉여 프로젝트 (2)
게임이야기 (1)
Memories (19)
Interest (37)
Thinking (36)
한글 (26)
PaperCraft (5)
Animation (408)
Wallpaper (2)
재테크 (19)
Exercise (3)
나만의 맛집 (2)
냥이 (9)
육아 (9)
Total1,343,990
Today28
Yesterday297
Statistics Graph

달력

« » 2019.12
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        

공지사항

태그목록

[DllImport("user32.dll")]

static extern IntPtr GetDC(IntPtr hWnd);


[DllImport("user32.dll")]

static extern int ReleaseDC(IntPtr hWnd, IntPtr hDC);


[DllImport("gdi32.dll")]

static extern int GetPixel(IntPtr hDC, int x, int y);


//GetPixel()함수 정의, Color객체 반환

static public Color GetPixel(Control control, int x, int y)

{

Color color = Color.Empty;

if (control != null)

{

IntPtr hDC = GetDC(control.Handle);

int colorRef = GetPixel(hDC, x, y);

color = Color.FromArgb(

  (int)(colorRef & 0x000000FF),

  (int)(colorRef & 0x0000FF00) >> 8,

  (int)(colorRef & 0x00FF0000) >> 16);

ReleaseDC(control.Handle, hDC);

}

return color;

}




Posted by blueasa
TAG GetPixel, RGB

댓글을 달아 주세요

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;
using
System.Runtime.InteropServices;
using
System.Text.RegularExpressions;


namespace
Color_tool
{
public partial class Form1 : Form
{
   
Regex rgbInputR;
   
Regex rgbInputG;
   
Regex rgbInputB;

   
Match R, G, B;
   
int r;
   
int g;
   
int b;


   
string colorX;

   
[DllImport("gdi32")]
   
private static extern int GetPixel(IntPtr hdc, int x, int y);
   
[DllImport("User32")]
   
private static extern IntPtr GetWindowDC(IntPtr hwnd);

   
private static readonly IntPtr DesktopDC = GetWindowDC(IntPtr.Zero);

   
public static System.Drawing.Color GetPixelAtCursor()
   
{
       
System.Drawing.Point p = Cursor.Position;
       
return System.Drawing.Color.FromArgb(GetPixel(DesktopDC, p.X, p.Y));
   
}

   
public Form1()
   
{
       
InitializeComponent();
   
}

   
private void Form1_Load(object sender, EventArgs e)
   
{
        button1
.BackColor = Color.Black;
   
}

   
private void timer1_Tick(object sender, EventArgs e)
   
{
        colorX
= GetPixelAtCursor().ToString();
       
Color backX = GetPixelAtCursor();
       
this.BackColor = Color.FromArgb(r,g,b);
        label1
.Text = colorX;
        RGB_value
();
   
}

   
private void button1_Click(object sender, EventArgs e)
   
{
       
if (timer1.Enabled == false)
            timer1
.Enabled = true;
       
else
            timer1
.Enabled = false;
   
}

   
private void RGB_value()
   
{
        rgbInputR
= new Regex(@"(?<=R=)\d{0,3}");
        rgbInputG
= new Regex(@"(?<=G=)\d{0,3}");
        rgbInputB
= new Regex(@"(?<=B=)\d{0,3}");

       
Match R, G, B;

        R
= rgbInputR.Match(colorX);
        G
= rgbInputG.Match(colorX);
        B
= rgbInputB.Match(colorX);
       
//had to flip the R and B ???
        b
= int.Parse(R.Groups[0].Value);
        g
= int.Parse(G.Groups[0].Value);
        r
= int.Parse(B.Groups[0].Value);
   
}
 
}
}





Posted by blueasa
TAG GetPixel, RGB

댓글을 달아 주세요