GDI + 기초 (1)

15772 단어 기초
전송: http://www.cnblogs.com/peterzb/archive/2009/07/19/1526555.html
System. drawing 네 임 스페이스 는 GDI + 기본 그래 픽 기능 에 대한 접근 System. drawing. drawing2D 네 임 스페이스 에 고급 2 차원 과 벡터 그래 픽 기능 을 제공 합 니 다.이 네 임 스페이스 는 경사도 형 브러시, Matrix 클래스 (기하학 적 변환 을 정의 하 는 데 사용), GraphicsPath 클래스 System. Drawing. Imaging 네 임 스페이스 를 포함 하여 고급 GDI + 이미지 처리 기능 System. Drawing. Text 네 임 스페이스 는 고급 GDI + 레이아웃 기능 을 제공 합 니 다.
 
Bitmap 클래스 는 GDI + 비트 맵 을 패키지 합 니 다. 이 비트 맵 은 그래 픽 이미지 와 그 속성의 픽 셀 데이터 로 구 성 됩 니 다.Bitmap 대상 은 픽 셀 데이터 로 정 의 된 그림 을 처리 하 는 대상 입 니 다.
1. 속성: Height 이 이미지 대상 의 높이 가 져 오기 PixelFormat 이 이미지 대상 의 픽 셀 형식 가 져 오기 Size 이 그림 의 픽 셀 단위 너비 와 높이 가 져 오기 Width 이 이미지 대상 의 너비 가 져 오기 2. 방법 Dispose 이 Image 대상 에서 사용 하 는 모든 자원 을 방출 합 니 다 Save 이 그림 을 지정 한 형식 으로 지정 한 흐름 에 저장 합 니 다 SetPixel 설정 Bitmap 대상 에서 지정 한 픽 셀 색상 예시
<%@ Page ContentType="image/gif" Language="C#" %>

<!--ContentType      -->

<%@ Import namespace="System.Drawing" %>

<%@ Import namespace="System.Drawing.Imaging" %>

<script runat="server">

protected void Page_Load(object sender, EventArgs e)

{

Bitmap bmp = new Bitmap(400, 200);

 //     400, 200   

 Random pixel = new Random();

 //        

 for(int i=0;i<1000;i++) {

 bmp.SetPixel(pixel.Next(400), pixel.Next(200), Color.Red);

 //   Bitmap           ,       x,y,color

 }

bmp.Save(Response.OutputStream, ImageFormat.Gif);//ImageFormat   ,           

//         ,        Gif   

}

</script>

 
Graphics 류 는 GDI + 도면 을 봉인 하 는 것 을 나타 낸다. 예 를 들 어 직사각형, 원형 등 더욱 복잡 한 도형 을 그린다.
상용 속성 및 방법: 속성 설명 Clip 에서 Region 대상 을 가 져 오 거나 설정 합 니 다. 이 그래 픽 대상 의 그림 영역 을 제한 합 니 다. ClipBounds 는 RectangleF 구 조 를 가 져 옵 니 다. 이 구 조 는 이 Graphics 대상 의 편집 영역 을 제한 합 니 다. DpiX 는 이 Graphics 대상 의 수평 해상 도 를 가 져 옵 니 다. DpiY 는 이 Graphics 대상 의 수직 해상 도 를 가 져 옵 니 다. PageScale 이 Graphics 대상 의 전역 단위 와 페이지 단위 간 의 비율 을 가 져 오 거나 설정 합 니 다. PageUnit 은 이 Graphics 대상 의 페이지 좌표 에 사용 할 도량 단 위 를 가 져 오 거나 설정 합 니 다. PixelOffsetMode 에서 값 을 가 져 오 거나 설정 합 니 다. 이 값 은 이 Graphics 대상 을 보 여 주 는 과정 에서 픽 셀 이 어떻게 이동 하 는 지 지정 합 니 다. RenderingOrigin 은 색 처리 와 음영 붓 으로 이 Graphics 대상 의 원점 을 가 져 오 거나 설정 합 니 다. SmoothingMode 에서 이 Graphics 대상 의 품질 을 가 져 오 거나 설정 합 니 다. TextRenderingHint 는 이 Graphics 대상 과 연 결 된 텍스트 의 표현 모드 를 가 져 오 거나 설정 합 니 다. Transform 에서 이 Graphics 대상 의 전역 변환 을 가 져 오 거나 설정 합 니 다. VisibleClipBounds 는 이 Graphics 대상 의 보 이 는 편집 영역의 테 두 리 를 가 져 오 거나 설정 합 니 다. 방법 설명 Clear 전체 그림 면 을 지우 고 지정 한 배경 색 으로 채 웁 니 다. dispose 는 이 Graphics 대상 이 사용 하 는 모든 자원 을 방출 합 니 다. DrawArc 는 좌표, 너비, 높이 가 지정 한 타원 부분 을 나타 내 는 포물선 을 그립 니 다. DrawEllipe 는 테두리 로 정 의 된 타원 을 그립 니 다. DrawIcon 은 지정 한 좌표 에 지정 한 Icon 대상 이 표시 하 는 그림 을 그립 니 다. DrawIconUnstretched 는 그림 의 크기 를 조정 하지 않 고 지정 한 Icon 대상 이 표시 하 는 그림 을 그립 니 다. DrawImage 는 지정 한 위치 에 있 고 원본 크기 에 따라 지정 한 Image 대상 을 그립 니 다. DrawImageUnscaled 는 좌표 가 지정 한 위 치 를 지정 하고 원본 크기 에 따라 지정 한 Image 대상 을 그립 니 다. DrawLine 은 좌표 가 지정 한 두 점 을 연결 하 는 선 을 그립 니 다. Draw Lines 는 Point 구 조 를 연결 하 는 일련의 라인 을 그립 니 다. Drawpie 는 부채 형 을 그립 니 다. 이 부채 형 은 좌표 대, 너비 와 높이, 그리고 두 개의 방사선 이 지정 한 타원 으로 정 의 됩 니 다. Draw Polygon 은 Point 구조 로 정 의 된 다각형 을 그립 니 다. DrawRectangle 은 좌표 대, 너비, 높이 가 지정 한 사각형 을 그립 니 다. DrawRectangles 는 Rectangle 구조 가 지정 한 일련의 사각형 을 그립 니 다. DrawString 은 지정 한 위치 에 지정 한 Brush 와 Font 대상 으로 지정 한 텍스트 문자열 을 그립 니 다. FillClosed Curve 는 Point 구조 배열 이 정의 하 는 닫 힌 기수 곡선 내 부 를 채 웁 니 다. FillEllipe 는 테두리 가 정의 하 는 타원 의 내 부 를 채 웁 니 다. 이 테 두 리 는 한 쌍 의 좌표, 너비, 높이 로 지 정 됩 니 다. FillPie 는 한 쌍 의 좌표, 한 폭, 한 높이 와 두 개의 방사선 이 지정 한 타원 이 정의 하 는 부채 형 구역 의 내 부 를 채 웁 니 다. FillPolygon Point 구조 가 지정 한 포인트 그룹 이 정의 하 는 다각형 의 내 부 를 채 웁 니 다. FillRectangle 은 한 쌍 의 좌표, 너비, 높이 가 지정 한 사각형 의 내 부 를 채 웁 니 다. FillRectangles 는 Rectangle 구조 가 지정 한 일련의 사각형 의 내 부 를 채 웁 니 다. FillRegion 은 Region 대상 의 내 부 를 채 웁 니 다. Flush 는 걸 려 있 는 모든 그래 픽 작업 을 강제 하고 작업 이 완료 되 기 를 기다 리 지 않 고 즉시 되 돌려 줍 니 다. FromHdc 는 장치 컨 텍스트 의 지정 한 핸들 에서 새로운 Graphics 대상 을 만 듭 니 다. FromHwnd 는 창의 지정 한 핸들 에서 새로운 Graphics 대상 을 만 듭 니 다. FromImage 는 지정 한 Image 대상 에서 새 Graphics 대상 을 만 듭 니 다. GetHdc 는 이 Graphics 대상 과 연 결 된 장치 컨 텍스트 의 핸들 을 가 져 옵 니 다. ReleaseHdc 는 이전에 이 Graphics 대상 GetHdc 방법 을 호출 하여 얻 은 장치 컨 텍스트 핸들 을 방출 합 니 다. ResetClip 은 이 Graphics 대상 의 편집 영역 을 무한 영역 으로 초기 화 합 니 다. ResetTransform 은 이 Graphics 대상 의 전역 변환 행렬 을 단위 행렬 로 초기 화 합 니 다. 직사각형 DrawRectangle 을 그 려 서 좌표 대, 너비, 높이 가 지정 한 사각형 Public void DrawRectangle (Pen, int, int, int, int) 을 그립 니 다.좌표 대, 너비, 높이 로 지정 한 사각형 그리 기
<%@ Page ContentType="image/gif" Language="C#" %>

<!--ContentType      -->

<%@ Import namespace="System.Drawing" %>

<%@ Import namespace="System.Drawing.Imaging" %>

<script runat="server">

protected void Page_Load(object sender, EventArgs e)

{

Bitmap bmp = new Bitmap(500, 400);

 //     400, 200   

Graphics gph;

//    Image     Graphics  

gph = Graphics.FromImage(bmp);

//                

gph.Clear(Color.Olive);

//

gph.DrawRectangle(Pens.Red, 100, 100, 50, 50);

//       ,    、                 

gph.FillRectangle(Brushes.Green, 200, 200, 50, 50);

bmp.Save(Response.OutputStream, ImageFormat.Gif);//ImageFormat   ,           

//         ,        Gif   

}

</script>

 
색상 사용
색상 구 조 는 ARGB 색상 이 a, R, G, BColor mycolor 를 포함 함 을 나타 낸다.mycolor = Color.FromName("blue");//FromName 방법 색상 문자열 을 GDI + 색상 mycolor = Color. FromArgb (255, 0, 0); / /FromArgb 방법 설정 RGB 값 mycolor = Color. FromArgb (100, 255, 0, 0); //FromArgb 방법 설정 a, RGB 값 은 ColorTranslator 클래스 로 HTML 색상 과 GDI + 색상 사이 에서 my color = ColorTranslator. FromHtml ("\ # 00FF 00");그림 브러시 류 를 사용 하여 도형 모양 (예 를 들 어 사각형, 타원형, 부채 형, 다각형 과 폐쇄 경로) 내부 의 대상 System. drawing. drawing2D. HatchBrush 는 그림자 스타일 로,전경 색 과 배경 색 정의 직사각형 화필 System. Drawing. Drawing2D. Linear GradientBrush 는 선형 그 라 데 이 션 으로 Brush 대상 System. Drawing. drawing2D. PathGradientBrush 를 밀봉 하여 Brush 대상 을 밀봉 합 니 다.GraphicsPath 대상 의 내부 System. Drawing. SolidBrush 를 그 라 데 이 션 으로 채 웁 니 다. System. Drawing. TextureBrush 는 그림 으로 모양 의 내부 PathGradientBrush 를 LinearGradientBrush 와 유사 하 게 채 웁 니 다. 하지만 더욱 강력 합 니 다. 더 이상 소개 하지 않 습 니 다. 다음 예제
<%@ Page ContentType="image/gif" Language="C#" %>

<!--ContentType      -->

<%@ Import namespace="System.Drawing" %>

<%@ Import namespace="System.Drawing.Imaging" %>

<%@ Import namespace="System.Drawing.Drawing2D" %>

<script runat="server">

protected void Page_Load(object sender, EventArgs e)

{

Bitmap bmp = new Bitmap(600, 120);

 //     400, 200   

 Bitmap img=new Bitmap(Server.MapPath("001.jpg"));

Color mycolor;

mycolor = Color.FromArgb(0, 0, 255);

//FromArgb    RGB 

 Rectangle rect=new Rectangle(300,0,100,100);

SolidBrush solid = new SolidBrush(mycolor);

//      

HatchBrush hatch = new HatchBrush(HatchStyle.Cross, Color.Orange);

//      , HatchStyle       

LinearGradientBrush linear;

linear = new LinearGradientBrush(rect, Color.Red, Color.Yellow, LinearGradientMode.ForwardDiagonal);

//     ,       (Rectangle, Color, Color, LinearGradientMode)

//    ,    ,   ,        ;

//BackwardDiagonal            。 

//ForwardDiagonal            。 

//Horizontal          。 

//Vertical          。 

TextureBrush texture = new TextureBrush(img);

//       

Graphics gph;

//    Image     Graphics  

gph = Graphics.FromImage(bmp);

//                

gph.Clear(Color.Red);

////

gph.FillRectangle(Brushes.Green, 0, 0, 100, 100);

gph.FillRectangle(solid, 100, 0, 100, 100);

gph.FillRectangle(hatch, 200, 0, 100, 100);

gph.FillRectangle(linear, rect);

gph.FillRectangle(texture, 400, 0, 100, 100);

bmp.Save(Response.OutputStream, ImageFormat.Gif);//ImageFormat   ,           

//         ,        Gif   

}

</script>

좋은 웹페이지 즐겨찾기