글쓴이 보관물: Toughman

ChartFX 꺽은선 그래프 마커 이미지 표시 하기

이번에는 ChartFX 꺽은선 그래프 마커 이미지 표시 하는 방법을 알아보도록 하겠습니다.

고객사로 부터 꺽은선그래프에서 범례를 없애고 맨 마지막 마커를 로고 이미지로 변경해 달라는 요청이 있었습니다. 이것은 비슷한 예제가 있어서 그것을 참고하여 작업하였습니다.

구현 소스 입니다. 강조된 31-40 줄을 보시면 됩니다.

 SolidBackground solidBackground = new SolidBackground();
 solidBackground.Color = System.Drawing.Color.White;

 var chart = String.Empty;
 var swChart = new StringWriter();
 var hwChart = new HtmlTextWriter(swChart);

 var crtChart = new Chart
 {
 Width = 560,
 Height = 300,
 Gallery = Gallery.Lines,
 RenderFormat = "Image",
 Background = solidBackground,
 Border = new ChartFX.WebForms.Adornments.ImageBorder(ImageBorderType.Rounded)
 };

 crtChart.DataSourceSettings.Style = DataSourceStyles.Transpose;
 crtChart.Border.Color = Color.Transparent;

 crtChart.AxisY.Style |= AxisStyles.HideText;
 crtChart.AxisY.Style |= AxisStyles.Hide;

 crtChart.AxisX.Grids.Major.Visible = false;
 crtChart.AxisX.Grids.Minor.Visible = false;

 crtChart.AxisX.Sections.Add(new AxisSection(4, 4, Color.Transparent));
 crtChart.AxisX.Sections[0].TextColor = ColorTranslator.FromHtml("#ff0000");
 crtChart.AxisX.Sections[0].Grids.Major.Visible = false;

 var markerIndex = 4;
 for (var i = 0; i < datasource.Rows.Count; i++)
 {
 var brandName = datasource.Rows[i]["brand"].ToString().Replace(" ", "");
 var brandImage = System.Drawing.Image.FromFile(Path.Combine(HttpContext.Current.Server.MapPath("/images/"), brandName + ".png"));

 crtChart.Points[i, markerIndex].Picture = brandImage;
 crtChart.Points[i, markerIndex].MarkerShape = ChartFX.WebForms.MarkerShape.Picture;
 crtChart.Points[i, markerIndex].MarkerSize = 14;
 }

 crtChart.DataSource = datasource;
 crtChart.DataBind();

 crtChart.RenderControl(hwChart);
 chart = swChart.ToString();

 litChart.Text = chart;

 

이미지 마커가 적용된 차트

이미지 마커가 적용된 차트

주의 하실 것은 마커로 사용하실 이미지는 가로세로 크기가 동일하여야 합니다. 회사의 로고의 경우 가로로 긴것이 있는데 정사각형 크기안에 맞도록 작업하여 사용하셔야 이미지가 깨지지 않습니다.

문제가 있는 것이 이미지의 크기가 그대로 적용되면 좋은데 그렇지는 않습니다. 실제 출력되는 것을 확인하시고 MarkerSize 속성을 조절하여 크기를 지정하시면 됩니다. 예제에서는 브랜드 이미지는 40*40 크기이고 MarkerSize는 14로 지정하였습니다.

markerIndex는 0부터 시작하며 예제에서는 4로 지정하였습니다.

Lush 점핑 주니퍼 샴푸바

머리에 기름기가 쉽게 그리고 많이 끼는 스타일이라 머리를 감아도 무엇인가 개운한 느낌이 없었습니다. 좋다는 샴푸도 써 보았는데 보통 샴푸보다는 좋지만 제가 원하는 개운하고 깔끔한 느낌을 주지는 못하였습니다.

뭔가 더 좋은 샴푸가 없을까 생각하며 종합 쇼핑몰을 검색하다가 Lush 점핑 주니퍼 샴푸바 이 제품을 보게 되었습니다.

처음에는 비누인가 생각했는데 자세히 보니 샴푸바 였습니다. 샴푸라고 하면 액체형태만 생각하였는데 고체 형태도 있다는 것을 처음 알게 되었습니다. 다른 제품들도 있었는데 지성용이라는 설명에 관심이 더 갔습니다.

일단 가격이 제가 생각하기에는 만만치 않았습니다. 거기에다 이런 형태의 제품을 사용해보지 않아서 얼마나 사용할 수 있을지도 알 수 없었습니다. 고민을 하다가 속는셈 치고 한번 써보자라는 생각을 하게되고 주문을 하게 되었습니다.

받아보니 생각보다 작았습니다.

100원짜리 동전과 크기 비교

Lush 점핑 주니퍼 샴푸바 100원짜리 동전과 크기 비교

뒷면을 보니 자세히는 모르겠지만 좋은(?) 성분이 들어가 있는 것 같았습니다. 그리고 향도 개인적으로는 생각보다 강하지 않고 괜찮았습니다.

샴푸바 뒷쪽 설명

Lush 점핑 주니퍼 샴푸바 뒷쪽 설명

실제 사용을 해 보았는데 처음에는 ‘이게 거품이 잘 날까?’ 라는 생각이 들었습니다. 머리를 물로 적시고 비누칠하듯 몇번 문지르고 손으로 머리를 비벼대니 거품이 생각보다는 잘 났습니다. 일반 샴푸를 사용하듯이 문지르고 깨끗이 헹구어 내었습니다.

제가 이 제품이 다른 샴푸와 다르다는 것을 헹구어 낼때 알게 되었습니다. 거의 다 헹구었을 때 머리에서 ‘뽀드득’하고 소리가 났습니다. 항상 뭔가 기름기가 모두 빠지지 않는 느낌이 있었는데 이 제품은 그렇지 않고 정말 기름기가 모두 빠져나가는 느낌이었습니다. 제가 원하는 것이 충족이 되었습니다. 그런데 물기를 제거하고 나니 머리가 푸석하다는 느낌을 받았습니다. 이런 느낌이 싫으신 분들은 다른 헤어 트리트먼트 제품을 같이 사용해야 겠다는 생각이 들었습니다.

처음에는 욕실에만 두고 사용하였는데 자세히 보니 습기에 매우 약한 것 같았습니다. 조금씩 녹는다는 느낌이 들었습니다. 그래서 사용 후 건조한 곳에 두어 보관하였습니다.

짧은 머리에 매일 아침에 머리를 감았는데 대략 2달반에서 3달 정도 사용했던 것 같습니다. 머리가 길고 사용횟수가 더 많으면 아무래도 사용기간이 짧아질 것 같습니다.

가격은 부담이 되었지만 머리에 기름기는 확실하게 빼주어 만족하였고 계속 이 제품을 사용하고 있습니다.