2010-04-09 10 views
3

이미지의 URL이 있고 이미지 자체가 아닌 URL이 있으면 치수를 가져 오는 것이 가장 효율적입니까? 이미지 태그 (<img>)의 높이 및 너비 속성이 200x200보다 큰 경우이를 변경하고 싶습니다. 그러나, 그것보다 작 으면 크기를 그대로 유지하고 싶습니다. (저는 ASP.NET/C#을 사용하고 있습니다)원격 이미지 치수 가져 오기

+0

정확하게 이해하면 브라우저에서 이미지의 크기를 조정하여 모든 이미지가 정렬되도록 하시겠습니까? 만약 그렇다면 자바 스크립트에서 이것을 아주 쉽게하는 방법으로 내 대답을 확인하십시오. –

답변

1

자바 스크립트 :

<img src="image.jpg" onload="if(this.width > 200) this.width = 200;"> 
1

JPEG 인 것을 알고 있다면 first few bytes을 당겨 이미지 헤더에서 너비/높이를 파싱 할 수 있습니다.

다른 이미지 형식은 더 어려울 수 있습니다. 나는 PNG가 모든 것을 덩어리로 처리하기 때문에 이런 종류의 헤더 검사를 수행 할 수 없다고 생각한다.

0

http://www.brettb.com/ASPNETUploadImageSize.asp

코드 샘플은 위의 사이트에서 온다. 이것은 업로드 된 이미지이지만, 어떻게 파일 스트림에서 informatin을 얻을하는 방법을 보여줍니다 : 당신은 당신이 그것을 할 수 먼저로드하여 이미지의 속성을 확인하지 않으려면

private void ButtonUpload_Click(object sender, System.EventArgs e) { 

    //Determine type and filename of uploaded image 
    string UploadedImageType = UploadedPicture.PostedFile.ContentType.ToString().ToLower(); 
    string UploadedImageFileName = UploadedPicture.PostedFile.FileName; 

    //Create an image object from the uploaded file 
    System.Drawing.Image UploadedImage = System.Drawing.Image.FromStream(UploadedPicture.PostedFile.InputStream); 

    //Determine width and height of uploaded image 
    float UploadedImageWidth = UploadedImage.PhysicalDimension.Width; 
    float UploadedImageHeight = UploadedImage.PhysicalDimension.Height; 

    //Check that image does not exceed maximum dimension settings 
    if (UploadedImageWidth > 600 || UploadedImageHeight > 400) { 
      Response.Write("This image is too big - please resize it!"); 
    } 

} 
+0

나는 이것이 실제로 이미지를 다운로드하기 때문에 기술적으로 부정 행위라고 생각한다. :) – MusiGenesis

4

대신 (당신은 거의 항상 전체 이미지 및 프로세스를 다운로드해야하기 때문에 낭비가 될 것이다) 크기를 확인하기 위해 노력하는 이유는 단지 <div> 요소에 이미지를 배치하지 컨테이너의 max-heightmax-width 스타일을 원하는 크기로 설정하십시오.

다른 옵션은 이미지를 인식하고 이미지를 컨테이너에 적절하게 맞게 크기를 조정 한 다음 서버에 저장하고 제공 할 때 이미지를 한 번 가져 오는 것입니다.

+0

그는 브라우저의 높이/너비 속성을 사용하여 이미지의 크기를 조정하려고합니다. div의 크기 설정은 크기를 조정하지 않습니다. –

+0

이것은 좋은 해결책입니다, 좋은 n 쉬운 및 서버 나던 어떤 일을 할 필요가 = D 조 –

관련 문제