이미지의 가장 많이 사용되는 색상을 찾으려면 응용 프로그램을 만들 때까지 색상의 RGB 값을 얻는 것이지만 색상 이름을 얻는 방법은 plz를 참조하십시오.C#에서 RGB 값을 갖는 동안 색상 이름을 얻는 방법은 무엇입니까?
답변
System.Drawing 네임 스페이스의 Color 클래스를 사용할 수 있어야하며, Color 개체를 반환하는 정적 메서드 FromARGB가 있어야합니다. 그것은 당신과 같이 RGB 값을 입력 할 수 있도록 한 여러 오버로드가 있습니다
var color = Color.FromArgb(100, 5,5,5).Name;
문서에서 :'이 메소드는 이름에서 색상이 생성 된 경우 색상의 사용자 정의 이름 또는 알려진 색상의 이름을 반환합니다. 사용자 정의 색상의 경우 RGB 값이 반환됩니다. ' –
** **'빨간색 '형식으로 이름이 반환되지 않습니다. 귀하의 예를 들어, 이름은 64050505로 나온다. – adrianbanks
예, 그것은 이름을 얻는 방법 16 진수 값을 제공하고 있습니까? – fresky
이 방법은 Color
클래스에 미리 정의 된 색상을 조사하고 인수로 전달 된 색상에 그들을 비교하는 반사를 사용합니다. 이것은 더 이상 최적화 될 수 있지만 일반적인 기술에 대한 아이디어를 제공해야합니다. 댓글에서 언급 한 바와 같이
private static String GetColorName(Color color)
{
var predefined = typeof(Color).GetProperties(BindingFlags.Public | BindingFlags.Static);
var match = (from p in predefined where ((Color)p.GetValue(null, null)).ToArgb() == color.ToArgb() select (Color)p.GetValue(null, null));
if (match.Any())
return match.First().Name;
return String.Empty;
}
'Any' 대신에'First' 대신'FirstOrDefault'를 호출하고 결과가 null인지 확인하십시오. –
색상은 구조체입니다. FirstOrDefault는 null이 아닌 빈 색을 반환합니다. –
는 KnownColor
열거이 간단하게 사용할 수 있습니다
Color.FromArgb
당신에게 Color
을 줄 것이다
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Linq;
using System.Reflection;
class Test
{
static void Main()
{
Color color = Color.FromArgb(255, 0, 0);
Console.WriteLine(color.Name); // ffff0000
var colorLookup = Enum.GetValues(typeof(KnownValue))
.Cast<KnownColor>()
.Select(Color.FromKnownColor)
.ToLookup(c => c.ToArgb());
// There are some colours with multiple entries...
foreach (var namedColor in colorLookup[color.ToArgb()])
{
Console.WriteLine(namedColor.Name);
}
}
}
원래 대답을하지만, 절대로 이름을 갖지 않을 것이다. 내가 아는 한 당신은 명명 된 색을 얻기 위해 반사를 사용해야합니다. 여기가 동시에까지 일하고 콜 캠벨의 솔루션의 또 다른 버전의
...
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Linq;
using System.Reflection;
class Test
{
static void Main()
{
Color color = Color.FromArgb(255, 0, 0);
Console.WriteLine(color.Name); // ffff0000
var colorLookup = typeof(Color)
.GetProperties(BindingFlags.Public | BindingFlags.Static)
.Select(f => (Color) f.GetValue(null, null))
.Where(c => c.IsNamedColor)
.ToLookup(c => c.ToArgb());
// There are some colours with multiple entries...
foreach (var namedColor in colorLookup[color.ToArgb()])
{
Console.WriteLine(namedColor.Name);
}
}
}
[KnownColor enumeration] (https://msdn.microsoft.com/en-us/library/system.drawing.knowncolor (v = vs.110) .aspx? cs-lang = csharp # code-snippet -2). –
@AndrewMorton : 좋은 지적 - 편집 됨. –
'KnownColor'는'ActiveCaptionText'와 같은 시스템 색상을 포함하고 있기 때문에이 경우별로 도움이되지 않습니다. 따라서이 메서드는이 이름도 반환합니다. – Karsten
빠르고 간단하게 뭔가를 들어,이 (WPF에서) 시도 :
public string GetNameOfColor(Color color) {
var colorProperty = typeof(Colors).GetProperties().FirstOrDefault(p =>
(Color)(p.GetValue(p, null)) == color);
return (colorProperty != null) ? colorProperty.Name : color.ToString();
}
Visual Studio 2010에서는 p.GetValue(p, null)
이 필요합니다. Visual Studio 2013 이상에서는 p.GetValue(p)
만 사용할 수 있습니다.
이 기술의 장점은, 그 간결 외에, 그것은 System.Drawing
또는 System.Reflection
에 대한 참조를 필요로하지 않는다는 것입니다하지만 사용자가 WPF 인 System.Windows
네임 스페이스 내부에 남아 있습니다. System.Windows.Media
에 대한 참조가 필요합니다. WPF에서 색상을 사용하는 경우에는 이미 가지고 있어야합니다. 만약 당신이 나를 좋아한다면, 당신은 WPF 어플리케이션에 좋은 필요없이 System.Drawing
을 추가하지 않으려 고합니다. 왜 WPF 네임 스페이스 안에 머물러야하는지에 관해서는, 선호도의 문제입니다. 예를 들어 WPF v/s System.Drawing에서 토론을 참조하십시오.
이것은 다른 두 답변과 어떻게 다릅니 까? WPF는 어느 부분입니까? –
- 1. RGB 값을 색상 이름과 일치시키는 방법은 무엇입니까?
- 2. hadoop에서 픽셀 rgb 값을 얻는 방법은 무엇입니까?
- 3. Ruby에서 html 색상 이름을 RGB 값으로 변환하는 방법은 무엇입니까?
- 4. 자바 스크립트를 사용하여 페이지의 이미지 RGB 값을 얻는 방법은 무엇입니까?
- 5. RGB 값을 Color 객체로 변환하는 방법은 무엇입니까?
- 6. C# : PDF 페이지의 위치에서 (CMYK로) 색상 값을 얻는 방법은 무엇입니까?
- 7. 색상 추적을위한 RGB/HSV 색상 매개 변수를 찾는 방법은 무엇입니까?
- 8. OpenCV : 각 픽셀에 대해 RGB 색상의 값을 갖는 RGB 이미지를 채우는 방법은 무엇입니까?
- 9. RGB, 일치하는 색상 표를 생성하는 방법은 무엇입니까?
- 10. matlab에 RGB 색상
- 11. 16 진수 값을 통해 색상 이름을 얻으시겠습니까?
- 12. 다른 색상에 가까운 색상의 rgb 값을 얻는 방법은 무엇입니까?
- 13. 열에 최대 값을 갖는 행을 얻는 방법?
- 14. iPhone PopUp RGB 색상
- 15. C에서 Unix 터미널의 입력 파일 이름을 얻는 방법은 무엇입니까?
- 16. 자바에서 jpeg/tiff의 색상 공간을 얻는 방법은 무엇입니까?
- 17. 색상 값을 조작하는 방법은 무엇입니까?
- 18. 안드로이드의 이미지에서 픽셀의 rgb 값을 얻는 방법
- 19. 자바에서 색상 선택기를 사용하여 색상 이름을 얻는 방법
- 20. 데이터베이스에 RGB 값을 저장하십시오.
- 21. 목표 C 가장 가까운 색상 찾기 (rgb)
- 22. JMagick을 사용하여 RGB 값을 가져 오는 방법은 무엇입니까?
- 23. 브라우저의 이름을 얻는 방법은 무엇입니까?
- 24. RGB/Hex/HSL/HSV 등의 색상 이름
- 25. RGB, HSB, LAB와 같은 색상 공간
- 26. Core Graphics - RGB 색상 공간을 만드는 데 적합한 방법은 무엇입니까?
- 27. RGB 색상 코드를 WORD에 어떻게 할당합니까?
- 28. 주어진 PMS 값에 대해 CMYK 값을 얻는 방법은 무엇입니까?
- 29. 색상 이름을 RGB로 변환
- 30. .csv 파일의 RGB 색상 R
도움이 될 수 있습니다. http://stackoverflow.com/questions/365935/trying-to-convert-rgb-from-a-net-color-to-a-string-such-as-red-or- 파란색 – Habib
[무엇을 시도 했습니까?] (http://whathaveyoutried.com)? 어디서 붙어 있니? 색상이 알려진 것 중 하나가 아닌 경우 어떻게 될 것으로 예상됩니까? – Oded