반응형
C#에서 제공하는 다양한 색상등이 정의되어 있고, 매우 유용합니다.
하지만 Color.Magenta 색상에는 버그가 있는 것으로 생각됩니다.
예를 들어 Color.Magenta 색상으로 단색의 Bitmap을 생성하고, Bitmap을 여러 Control(Picture Box / Tool Strip Button 등)에 함께 사용하면 이미지가 표시되지 않는 현상이 발생합니다.
(다른 색상의 경우 정상적으로 표시됩니다.)
- 반드시 Magenta 색상을 사용해야 한다면 아래의 코드를 적용해서 사용하시길 바랍니다.
(다른 색상에도 문제가 있는지 전수 검사를 하지 않았으면, 동일 현상이 발생한다면 아래의 코드를 참고하세요.)
Color color = Color.FromName("Magenta");
color = Color.FromArgb(color.R - 1, color.G, color.B);
- Color.Magenta 색상에 대한 버그 테스트 전체 소스입니다.
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 TEST
{
public partial class Form1 : Form
{
Bitmap bitmapMagenta;
Bitmap bitmapBlue;
public Form1()
{
InitializeComponent();
}
// Button Click 이벤트
private void btnMagenta_Click(object sender, EventArgs e)
{
if (bitmapMagenta == null)
{
Color color = Color.FromName("Magenta");
//color = Color.FromArgb(color.R - 1, color.G, color.B);
// 이미지 생성
bitmapMagenta = new Bitmap(50, 50);
for (int i = 0; i < bitmapMagenta.Width; i++)
{
for (int j = 0; j < bitmapMagenta.Height; j++)
{
bitmapMagenta.SetPixel(i, j, color);
}
}
}
pictureBox.Image = bitmapMagenta;
toolStripButton.Image = bitmapMagenta;
}
// Button Click 이벤트
private void btnBlue_Click(object sender, EventArgs e)
{
if (bitmapBlue == null)
{
Color color = Color.FromName("Blue");
// 이미지 생성
bitmapBlue = new Bitmap(50, 50);
for (int i = 0; i < bitmapBlue.Width; i++)
{
for (int j = 0; j < bitmapBlue.Height; j++)
{
bitmapBlue.SetPixel(i, j, color);
}
}
}
pictureBox.Image = bitmapBlue;
toolStripButton.Image = bitmapBlue;
}
}
}
반응형
'.Net' 카테고리의 다른 글
C# - 이미지 사이즈 변경(Resize) (0) | 2015.07.03 |
---|---|
C# - 정규식을 이용한 문자 변환 (1) | 2015.06.19 |
C# - ComboBox 텍스트(Text) 수정 못하게 하기 (0) | 2015.05.22 |
C# - DataGridView의 Column Header 높이 변경하기 (0) | 2015.05.21 |
C# - TreeView에 Node 추가 시 성능 향상 (0) | 2015.05.20 |
댓글