c# - Getting a pixel's color from an image in a picturebox is not working -
i trying make windows form application. in application there picture box, , user can choose color clicking on color within picture.
so googled , tried things, not working correctly,
so have code checking on point user clicks within picture box , setting r
, g
, b
:
private void picturebox1_click(object sender, eventargs e) { x = mouseposition.x; y = mouseposition.y; messagebox.show(string.format("x: {0} y: {1}", x, y)); coloratpoint = properties.resources.kleuren_rondje.getpixel(x, y); r = coloratpoint.r; g = coloratpoint.g; b = coloratpoint.b; }
and have check color
private void colorchecker() { graphics e = picturebox2.creategraphics(); solidbrush mybrush = new solidbrush(color.fromargb(r, g, b)); e.fillrectangle(mybrush, 1, 1, 100, 100); }
and checking if color found en add in other picture box (for testing)
private void button1_click(object sender, eventargs e) { colorchecker(); }
i used methods internet r
, g
, b
still gives 255
. knows why or maybe other way check r
,g
,b
picture on clicked point.
btw, x
, y
gives point locations
regards
mouseposition returns screen coords. need client coords.
either convert it:
point pt = picturebox1.pointtoclient(mouseposition); x = pt.x; y = pt.y;
...or use mousedown()
, corresponding e.x
, e.y
:
private void picturebox1_mousedown(object sender, mouseeventargs e) { x = e.x; y = e.y; messagebox.show(string.format("x: {0} y: {1}", x, y)); // ... }
Comments
Post a Comment