ASP.NET에서 일반 갤러리를 만들고 있지만 미리보기 이미지를 만드는 데 약간의 경험이 있습니다. 알고리즘 및 GetThumbnailImage 메서드를 알고 있지만 내 문제는 다른 어딘가에있다 - ImageButton 컨트롤을 사용하여 이미지를 (그냥 크기가 조정 된) 표시 해요. 그리고 그것이 요점입니다. "thumbnailed"이미지를 ImageUrl 속성에 연결하는 방법을 모릅니다. 심지어 가능하니, 그렇다면 어떻게? 아니면 대신 다른 컨트롤을 사용해야합니까? 어떤 제안을 주셔서 감사합니다!ASP.NET에서 축소판 그림을 표시하는 가장 좋은 방법은 무엇입니까?
답변
이미지 요청을 처리하고 축소판을 반환하는 HttpHandler를 만들거나 이미지에 필요한 모든 것을 할 수 있습니다. 당신은 ASP.NET에서 그래픽 물건을 할 때마다
거의 System.Drawing의 모든은 GDI +의 래퍼이며 thetrefore가 적절하게 배치 할 필요가 관리되지 않는 메모리에 대한 참조를 보유 염두에 두어야합니다 (using
문을 사용) . 이것은 StringFormat 등의 간단한 클래스에도 적용됩니다.
HttpHandler를 설정해야 크기가 조정 된 이미지를 만들 수 있고 디스크에 캐시 할 수있는 것처럼 들리므로 각 이미지에 미리보기 이미지를 다시 만들지 않아도됩니다. 의뢰.
따라서, 예를 들어 : 당신은 다음 핸들러 것
<asp:ImageButton ID="ImageButton1" ImageUrl="~/ImageHandler.ashx?ImageId=123" runat="server />
:
namespace MyProject
{
public class ImageHandler : IHttpHandler
{
public virtual void ProcessRequest(HttpContext context)
{
// 1. Get querystring parameter
// 2. Check if resized image is in cache
// 3. If not, create it and cache to disk
// 5. Send the image
// Example Below
// -------------
// Get ID from querystring
string id = context.Request.QueryString.Get("ImageId");
// Construct path to cached thumbnail file
string path = context.Server.MapPath("~/ImageCache/" + id + ".jpg");
// Create the file if it doesn't exist already
if (!File.Exists(path))
CreateThumbnailImage(id);
// Set content-type, content-length, etc headers
// Send the file
Response.TransmitFile(path);
}
public virtual bool IsReusable
{
get { return true; }
}
}
}
는 또한 Web.config의
<system.web>
<httpHandlers>
<add verb="*" path="ImageHandler.ashx" type="MyProject.ImageHandler, MyProject"/>
</httpHandlers>
</system.web>
이를 설정해야합니다 것 이것은 당신을 시작하게하는데 충분할 것입니다. 미리보기 이미지를 만들려면 ProcessRequest 메서드를 수정해야하지만 이미 처리했음을 언급했습니다. 또한 파일을 브라우저로 전송할 때 헤더를 올바르게 설정해야합니다.
작은 수정을 확인하십시오. context.Response.TransmitFile (path);를 호출해야합니다. –
Http 처리기를 사용하십시오.
성능에 대한 또 다른주의 사항 : 이미지 조작은 메모리와 CPU 관점 모두에서 디스크 공간에 비해 비쌉니다. 따라서 전체 이미지에서 미리보기 이미지를 생성하는 것은 전체 이미지 각각에 대해 한 번만 수행하려는 것입니다. 가장 좋은 시간은 아마도 이미지가 업로드되는 시점 일 것입니다. 특히 동일한 페이지에 여러 이미지가 표시되는 것이 좋습니다.
- 1. ASP.NET에서 주석을 표시하는 가장 좋은 방법은 무엇입니까?
- 2. UITableview에서 축소판 목록을 표시하는 가장 좋은 방법은 무엇입니까
- 3. asp.net에서 SQL Server 데이터베이스의 이미지를 표시하는 가장 좋은 방법은 무엇입니까?
- 4. 이미지에 축소판 그림을 포함하는 방법
- 5. ASP.NET에서 이벤트를 구독하는 가장 좋은 방법은 무엇입니까?
- 6. Asp.net에서 JQuery를 사용하는 가장 좋은 방법은 무엇입니까
- 7. ASP.NET에서 URL을 생성하는 가장 좋은 방법은 무엇입니까?
- 8. PHP에서 이미지를 표시하는 가장 좋은 방법
- 9. 텍스트를 표시하는 가장 좋은 방법은 무엇입니까?
- 10. Django에서로드 스피너를 표시하는 가장 좋은 방법은 무엇입니까?
- 11. 이메일을 공개적으로 표시하는 가장 좋은 방법은 무엇입니까?
- 12. 안드로이드에 이미지를 표시하는 가장 좋은 방법은 무엇입니까?
- 13. ASP.NET에서 그림을 배경으로 설정하는 방법은 무엇입니까?
- 14. 동적 이미지의 축소판 크기 조정을 처리하는 가장 좋은 방법은 무엇입니까?
- 15. 프로젝트 리소스에 그림을 표시하는 방법은 무엇입니까?
- 16. ASP.NET에서 역할을 표시하는 방법은 무엇입니까?
- 17. ASP.NET에서 여러 javascript 파일로드를 제어하는 가장 좋은 방법은 무엇입니까?
- 18. 가장 좋은 방법은 Asp.net에서 _DoPostBack 자바 스크립트 메서드 무엇입니까
- 19. Asp.Net에서 로그 오프 단추를 구현하는 가장 좋은 방법은 무엇입니까
- 20. Asp.Net에서 응용 프로그램 성능을 향상시키는 가장 좋은 방법은 무엇입니까?
- 21. ASP.Net에서 SQL Server로 데이터를 업데이트하는 가장 좋은 방법은 무엇입니까
- 22. asp.net에서 '잠재적으로 위험한 요청'오류가 발생하는 가장 좋은 방법은 무엇입니까?
- 23. ASP.NET에서 생성 된 JavaScript를 최소화하는 가장 좋은 방법은 무엇입니까?
- 24. ASP.Net에서 보고서를 PDF로 인쇄하는 가장 좋은 방법은 무엇입니까?
- 25. ASP.NET에서 사용자의 브라우저를 확인하는 가장 좋은 방법은 무엇입니까?
- 26. ASP.Net에서 성능을 이해하고 분석하는 가장 좋은 방법은 무엇입니까?
- 27. ASP.NET에서 사용하기 위해 Ext JS를 배우는 가장 좋은 방법은 무엇입니까?
- 28. ASP.Net에서 사용자 세션을 처리하는 가장 좋은 방법은 무엇입니까?
- 29. ASP.NET에서 레코드를 사용자 지정 편집하는 가장 좋은 방법은 무엇입니까?
- 30. asp.net에서 xml 파일을 작성하고 다운로드하는 가장 좋은 방법은 무엇입니까?
고맙습니다. 시도해 보겠습니다. – jkottnauer
아마도 이미지를 캐쉬해야합니다. 왜냐하면이 모든 것이 잘 확장되지 않기 때문입니다 ... –
오른쪽. 캐싱 너무 동적하지만 ASP.NET에서 물건을 계산하는 "복잡한"일반적으로 좋은 생각입니다 ... – Lucero