|
1. 웹 페이지에 동적으로 이미지를 추가하기
웹사이트를 개발하는 동안 웹사이트 및 개별 페이지에 이미지를 추가할 수 있습니다. 또한 사용자가 그들이 프로필 사진을 이미지를 업로드하는데 유용할게 할 수 있습니다.
이미지가 이미 귀하의 사이트에서 사용할 수있다면 단지 한 페이지에 표시하려면, 당신은 이런식으로 HTML을 <img> 요소를 사용 :
img src="images/Photo1.jpg" alt="Sample Photo" /> |
하지만, 페이지가 시작될 때까지 표시되는 이미지를 모르지만 가끔은 동적으로 이미지를 표시할 수 있기을 원합니다.
이 섹션의 절차에서는 사용자가 이미지 이름의 목록에서 이미지 파일 이름을 지정 즉시 이미지를 표시하는 방법을 보여줍니다. 그들은, 드롭 다운 목록에서 이미지의 이름을 선택하고 그들은 페이지를 제출하면, 그들이 선택한 이미지가 표시됩니다.
@{ <!DOCTYPE html> |
2. 이미지 업로드
이전 예제에서는 동적으로 이미지를 표시하는 것을 보여줬지만, 웹사이트에 이미 있던 이미지를 사용했습니다. 이 절차에서는 사용자가 다음 페이지에 표시되는 이미지를 업로드할 수 있도록 보여줍니다. ASP.NET에서는 조작, 생성하도록 방법을 가지고있는 WebImage Helper를 사용하여 즉시 이미지를 조작하고 이미지를 저장합니다. WebImage Helper는 . jpg로, PNG 및 BMP 파일을포함 모든 일반적인 웹 이미지 파일 형식을 지원합니다.
@{ WebImage photo = null; var newFileName = ""; var imagePath = ""; if(IsPost){ photo = WebImage.GetImageFromRequest(); if(photo !=null){ newFileName = Guid.NewGuid().ToString()+"_"+Path.GetFileName(photo.FileName); //Unique(유일한 이름 생성) imagePath = @"images\" + newFileName; photo.Save(@"~\" + imagePath); } } } <!DOCTYPE html> <html> <head> <title>Image Upload</title> </head> <body> <form action="" method="post" enctype="multipart/form-data"> <fieldset> <legend> 이미지 업로드 </legend> <label for="Image">사진 올리기</label> <input type="file" name="Image" /> <br/> <input type="submit" value="Upload" /> </fieldset> </form> <h1>업로드된 이미지 표시</h1> @if(imagePath != ""){ <div class="result"> <img src="@imagePath" width="600px" alt="image" /> </div> } </body> </html> |
C:\Users\Joe\Pictures\SamplePhoto1.jpg |
Path.GetFileName(photo.FileName) |
참고,이미지 폴더에 응용프로그램이 파일을 저장하도록 읽기/쓰기 권한을 해당 폴더에 대한 권한을 써주세요. 개발 컴퓨터에서는 일반적으로 문제가되지 않습니다. 그러나, 당신은 호스팅 제공 업체의 웹 서버에 사이트를 게시할 때, 당신은 명시적으로 해당 권한을 설정해야 할 수 있습니다. 호스팅 제공 업체의 서버에서이 코드를 실행하면 오류를 일으킬 때, 호스팅 제공 업체에 그 권한을 성정하는 방법을 확인하세요. |
photo.Save(@"~\" + imagePath)
. 현재 웹사이트의 위치 @"~\"
에 전체 경로가 추가됩니다. (~ 연산자에 대한 자세한 내용 장 2 참조.)
GUID에 대하여 GUID는 (Globally Unique Identifier, 전역 고유 ID)는 936DA01F-9ABD-4d9d-80C7-02AF85C822A8 와 같은식의 식별자입니다. (기술적으로, 그것은 16-byte/128-bit 숫자입니다.) GUID가 필요하면 GUID를 생성하는 특수 코드를 호출할 수 있습니다. GUID의 뒤에 아이디어는 번호의 거대한 크기 (3.4 x 1038)와 그것을 생성하는 알고리즘 사이에 발생하는 번호가 일치하지 않는 것을 보장합니다. 따라서 GUID는 두 번 동일한 이름을 사용하지 않을 것을 보장해야 할 때 사물들의 이름을 생성하는 좋은 방법입니다. 물론, GUID는 사용자 친화적이지 못한 숫자 조합이기 때문에 이름이 코드에서만 사용할 때 사용되는 경향이 있습니다. |
3. 이미지 크기 조절
웹사이트가 사용자의 이미지를 수락하면 표시 전에 그들을 저장, 당신은 이미지 크기를 조정 할 수 있습니다. 여기에서 다시 WebImage Helper를 사용할 수 있습니다.
이 절차는 업로드된 이미지 크기를 조정하여 축소판을 만드는 방법을 설명합니다. 다음 웹사이트에서 작은 이미지와 원본 이미지 저장 보여줍니다. 페이지에 축소판을 표시하고 전체 크기 이미지로 사용자를 리디렉션에 대한 하이퍼 링크를 만듭니다.
@{ WebImage photo = null; var newFileName = ""; var imagePath = ""; var imageThumbPath = ""; if(IsPost){ photo = WebImage.GetImageFromRequest(); if(photo !=null){ newFileName = Guid.NewGuid().ToString() +"_"+ Path.GetFileName(photo.FileName); imagePath = @"Images\" + newFileName; photo.Save(@"~\" + imagePath); imageThumbPath =@"images\thumbs\" + newFileName; photo.Resize(width:60, height: 60, preserveAspectRatio: true, preventEnlarge:true ); photo.Save(@"~\" + imageThumbPath); } } } <!DOCTYPE html> <html> <head> <title> 섬네일을 만들고 저장하는 장 </title> </head> <body> <h1>섬네일 이미지</h1> <form action="" method="post" enctype="multipart/form-data"> <p></p> <fieldset> <legend>섬네일 만들기</legend> <label for="Image">이미지"</label> <input type="file" name="Image"/> <br /> <input type="submit" value="이미지넣기"/> </fieldset> </form> @if(imagePath !=""){ <div class="result"> <img src="@imageThumbPath" alt="Thumbnail image"/> <a href="@Html.AttributeEncode(imagePath)" target"_Self">큰파일 보기</a> </div> } </body> </html> |
4. 이미지를 회전하고 뒤집기
WebImage Helper 또한 회전시키면서 뒤집기를 회전할 수 있습니다. 이 절차는, 그것을 저장한 다음 페이지에 뒤집힌 이미지를 표시, (세로) 거꾸로 뒤집기, 서버에서 이미지를 이미지를 얻는 방법을 보여줍니다. 이 예제에서는, 서버에 있는(Photo2.jpg) 파일을 사용하고 있습니다. 이전 예제에서 그랬던 것처럼 실제 응용 프로그램에서는, 이미지를 동적으로 얻어 플립하는 방법을 배웁니다.
@{ var imagePath =""; WebImage photo = new WebImage(@"~\Images\photo2.jpg"); if(photo !=null){ imagePath = @"Images\photo2.jpg"; photo.FlipVertical(); photo.Save(@"~\" + imagePath); } } <!DOCTYPE html> <html> <head> <title>이미지 뒤집기</title> <meta http-equiv="content-type" content="text.html;charest=utf-8"/> </head> <body> <h1>수직으로 뒤집기</h1> @if(imagePath !=""){ <div class="result"> <img src="@imagePath" alt="Image"/> </div> } </body> </html> |
WebImage photo = new WebImage(@"~\Images\Photo2.jpg"); |
5. 이미지에 워터마크를 추가
이미지를 서버에 저장하기 전이나 웹페이지에 표시할 때 워터마크를 사용합니다. 사람들은 종종 이미지 광고를 게재하거나 자신의 회사 이름 저작권 정보를 추가하려면 워터마크를 사용합니다.
@{ var imagePath= ""; WebImage photo = new WebImage(@"~\Images\Photo3.jpg"); if(photo != null){ imagePath = @"images\Photo3.jpg"; photo.AddTextWatermark("My Watermark", fontColor:"Yellow", fontFamily: "Arial"); photo.Save(@"~\" + imagePath); } } <!DOCTYPE html> <html> <head> <title>Water Mark</title> <meta http-equiv="content-type" content="text/html;charset=utf-8" /> </head> <body> <h1>Adding a Watermark to an Image</h1> @if(imagePath != ""){ <div class="result"> <img src="@imagePath" alt="Image" /> </div> } </body> </html> |
6. 워터마크로 이미지를 사용
워터마크를 텍스트로 하는 대신, 다른 이미지를 사용할 수 있습니다. 가끔은 워터마크로 회사 로고 같은 이미지를 사용하거나, 저작권 정보에 대한 텍스트 대신에 워터마크 이미지를 사용합니다.
@{ var imagePath = ""; WebImage WatermarkPhoto = new WebImage(@"~\" + @"\Images\SantaLogo.jpg"); WebImage photo = new WebImage(@"~\Images\Photo4.jpg"); if(photo != null){ imagePath = @"images\Photo1.jpg"; photo.AddImageWatermark(WatermarkPhoto, width: 80, height: 50, horizontalAlign:"Center", verticalAlign:"Bottom", opacity:100, padding:10); photo.Save(@"~\" + imagePath); } } <!DOCTYPE html> <html> <head> <title>Image Watermark</title> <meta http-equiv="content-type" content="text/html;charset=utf-8" /> </head> <body> <h1>Using an Image as a Watermark</h1> @if(imagePath != ""){ <div class="result"> <img src="@imagePath" alt="Image" /> </div> } </body> </html> |
|