ASP.NET 기초 강의실

시삽: 레드플러스 님 
게시판 이동:
 제목 : 25.1. GDI+를 이용한 랜덤하게 텍스트를 출력하는 동적 이미지 생성
글번호: 153
작성자: 레드플러스
작성일: 2007/03/05 오전 12:13:00
조회수: 5788
파일: DynamicImageText.png (25 KB) / 전송수: 2365
DynamicImageText.png
안녕하세요. 레드플러스 박용준 입니다. 동적으로 랜덤하게 4개의 영문 또는 숫자를 생성하여 익명사용자가 데이터를 입력할 수 있는 익명 게시판에 게시판 생성기와 같은 악의적인 코드에 의해서 입력되는 광고를 사전에 차단하기 위한 방편 중 하나인 동적이미지 생성을 통한 이미에 입력된 텍스트와 동일한 데이터가 작성되었을 경우에만, 글이 입력되도록 하는 간단한 동적이미지 생성 로직을 작성해 보았습니다. 참조할 소스는 아래와 같습니다.
1 using System; 2 using System.Data; 3 using System.Configuration; 4 using System.Collections; 5 using System.Web; 6 using System.Web.Security; 7 using System.Web.UI; 8 using System.Web.UI.WebControls; 9 using System.Web.UI.WebControls.WebParts; 10 using System.Web.UI.HtmlControls; 11 using System.Drawing; // 12 13 public partial class DotNetNote_ImageTextControl : System.Web.UI.UserControl 14 { 15 protected void Page_Load(object sender, EventArgs e) 16 { 17 // 비트맵 이미지 생성 18 Bitmap objBitmap = new Bitmap(80, 20); 19 Graphics objGraphics = Graphics.FromImage(objBitmap); 20 objGraphics.Clear(Color.White); 21 objGraphics.SmoothingMode = 22 System.Drawing.Drawing2D.SmoothingMode.HighSpeed; 23 objGraphics.TextRenderingHint = 24 System.Drawing.Text.TextRenderingHint.AntiAlias; 25 26 // 랜덤하게 4개의 문자 생성 : 영문 대문자, 정수, 영문 소문자, 정수 27 Random random = new Random(); 28 char c1 = (char)random.Next(65, 90); 29 char c2 = (char)random.Next(48, 57); 30 char c3 = (char)random.Next(97, 122); 31 char c4 = (char)random.Next(48, 57); 32 33 // 입력 페이지에서 비교를 위해서 세션 변수 남용 34 Session["ImageText"] = 35 c1.ToString() + c2.ToString() + c3.ToString() + c4.ToString(); 36 37 // 사각형 비트맵 이미지에 4개의 문자 기록 38 objGraphics.DrawString(c1.ToString(), 39 new Font("Verdana", 12, FontStyle.Bold), 40 Brushes.DarkBlue, new PointF(5, 1)); 41 objGraphics.DrawString(c2.ToString(), 42 new Font("Arial", 11, FontStyle.Italic), 43 Brushes.DarkBlue, new PointF(25, 1)); 44 objGraphics.DrawString(c3.ToString(), 45 new Font("Verdana", 11, FontStyle.Regular), 46 Brushes.DarkBlue, new PointF(45, 1)); 47 objGraphics.DrawString(c4.ToString(), 48 new Font("Arial", 12, FontStyle.Underline), 49 Brushes.DarkBlue, new PointF(65, 1)); 50 51 // 비트맵 이미지 출력 52 Response.ContentType = "image/gif"; 53 objBitmap.Save( 54 Response.OutputStream, System.Drawing.Imaging.ImageFormat.Gif); 55 56 // 메모리 정리 57 objBitmap.Dispose(); 58 objGraphics.Dispose(); 59 } 60 } 61
 
이전 글   다음 글 삭제 수정 답변 글쓰기 리스트


관련 아티클 리스트
  제       목 파일 작성자 작성일 조회
이전글 26. 간단한 회원가입 페이지 만들기 프로젝트 (1) - 레드플러스 2007-03-19 7165
  25. GDI+를 이용한 이미지 처리 : GDI(Graphics Device Inte... - 레드플러스 2007-03-05 7031
현재글 25.1. GDI+를 이용한 랜덤하게 텍스트를 출력하는 동적 이미지 생성 DynamicImageText.png(25 KB) 레드플러스 2007-03-05 5788
다음글 24. 외부 컨트롤/컴포넌트 사용 - 레드플러스 2006-03-28 6266
 
손님 사용자 Anonymous (손님)
로그인 Home