더북(TheBook)

7. UI가 필요 없는 마지막 페이지인 축소판(썸네일;ThumbNail) 이미지를 생성시키는 ThumbNail.aspx 페이지를 생성한다. 역시 ThumbNail.aspx 페이지는 그대로 둔 채 코드 숨김 페이지인 ThumbNail.aspx.cs 파일을 열고 다음과 같이 입력한다. 이 안에 있는 코드는 이 책의 범위를 벗어나는 영역이 포함되어 있기에 이 또한 먼저 사용하다가 MSDN을 참고해 주요 명령어를 익히도록 한다. 또한, System.Drawing 네임스페이스는 반드시 추가하기 바란다.

▼  ~/DotNetNote/ThumbNail.aspx.cs

using System;
using System.Drawing;

namespace MemoEngine.DotNetNote
{
  /// <summary>
  /// ThumbNail : 축소판 이미지 생성기
  /// </summary>
  public partial class ThumbNail : System.Web.UI.Page
  {
      protected void Page_Load(object sender, EventArgs e)
      {
          // 변수 초기화
          int boxWidth = 100;
          int boxHeight = 100;
          double scale = 0;
          
          // 파일 이름 설정
          string fileName = String.Empty;
          string selectedFile = String.Empty;
          
          if (Request[“FileName”] != null)
          {
              selectedFile = Request.QueryString[“FileName”];
              fileName = Server.MapPath(”./MyFiles/” + selectedFile);
          }
          else
          {
              selectedFile = ”/images/dnn/img.jpg”;//기본 이미지로 초기화
              fileName = Server.MapPath(”/images/dnn/img.jpg”);
          }
          
          int tmpW = 0;
          int tmpH = 0;
          
          if (Request.QueryString[“Width”] != null
              && Request.QueryString[“Height”] != null)
          {
              tmpW = Convert.ToInt32(Request.QueryString[“Width”]);
              tmpH = Convert.ToInt32(Request.QueryString[“Height”]);
          }
          
          if (tmpW > 0 && tmpH > 0)
          {
              boxWidth = tmpW;
              boxHeight = tmpH;
          }
          
          // 새 이미지 생성
          Bitmap b = new Bitmap(fileName);
          
          // 크기 비율을 계산한다.
          if (b.Height < b.Width)
          {
              scale = ((double)boxHeight) / b.Width;
          }
          else
          {
              scale = ((double)boxWidth) / b.Height;
          }
          
          // 새 너비와 높이를 설정한다.
          int newWidth = (int)(scale  b.Width);
          int newHeight = (int)(scale 

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.