2011-09-28 3 views
0

widthheight 속성을 <img /> 요소에 지정하면 브라우저는 렌더링 된 레이아웃에서 이미지를 즉시 찾을 수 있습니다. 정말 속도가 빠르지는 않지만 좋은 최적화 방법입니다.PHP에서 생성 된 특정 이미지 크기

괜찮 으면 좋겠지 만 때때로 이미지의 크기가 다릅니다. 그래서 우리는 PHP getimagesize() 함수로 얻을 수 있습니다.

여기에 질문이 있습니다. 특정 치수가 없으면 PHP를 사용하는 것이 가치가 있습니까? 물론 추가 코드를 작성해야하지만 갤러리에 대처할 경우 PHP를 사용하므로 PHP 코드는 2 줄 밖에 없습니다.

귀하의 의견은 무엇입니까?

답변

0

당신이하려는 일에 따라 다릅니다. <img/> 태그의 크기는 다음과 같습니다.

  1. 브라우저는 이미지를 다운로드 할 때 예약 할 공간을 알고 있습니다. 이것은 이미지가로드 될 때 레이아웃이 돌아 가지 않는다는 것을 의미합니다.
  2. 이미지를로드 (속도 최적화)하면 브라우저가 리플 로우를 수행하고 다시 칠하지 않아도됩니다.
  3. HTML로드가 완료되면 모든 자바 처리에서 사용할 수있는 치수를 갖게됩니다.

반면에 크기를 추가하면 페이지 크기가 늘어나고 더 많은 대역폭을 사용할 수 있습니다.

0

getimagesize를 사용하면 입출력 읽기가 발생한다는 것을 알아야합니다 (db에서 BLOB 읽기를 수행하지 않는 한 괜찮습니다). 따라서 이미지를로드하기 위해 I/O 읽기를 두 배로 늘 렸습니다. 컴퓨터는 일반적으로 브라우저의 이미지 너비와 높이가 문제가되지 않을 정도로 충분히 빠릅니다. 다시 그런

, 다른 최적화의 장소가 : 대신 응용 프로그램

  • 의 CDN 서비스에 자산을 넣어

    • 스프라이트
    • 코드 나는 일반적으로 생각

    를 확인을, 그것은에 실용적이다 이를 구현하면 최적화 과정에서 더 많은 비효율을 초래하기 때문입니다.

  • +0

    나는 당신이 대부분 옳다고 생각하고, 스프라이트도 아주 좋은 연습입니다. 하지만 갤러리 사건에 대해 궁금합니다. 이미지 dimmensions를 데이터베이스에 저장하는 것이 가장 최적의 솔루션 인 것 같습니다. –

    +0

    물론 이미지 갤러리의 경우 업로드 할 때 갤러리의 메타 데이터를 얻을 수 있습니다. 이것이 최고의 솔루션입니다. zip 아카이브와 같은 이미지 묶음을 받았다면 apriori 크기를 알아 내고 말한대로 데이터베이스에 저장하는 것이 좋습니다. – Candide

    0

    글쎄, 나는 결코 신경 쓰지 않는다. 그리고 솔직히 웹 사이트의 대부분은 귀찮게하지 않습니다. 문제는 브라우저가 크기를 얻기 위해 전체 이미지를 다운로드 할 필요가 없다는 것입니다. 대부분의 이미지 형식은 파일의 헤더에 이미지 크기가 있습니다. 그래서 일단 브라우저가 파일의 처음 몇 바이트를 얻었 으면 이미 치수가 무엇인지를 알고 있습니다.

    0

    함수 getimagesize()는 PHP가 호출 될 때마다 파일에서 이미지 크기를 구문 분석하려고합니다. 따라서 기본적으로 하나의 디스크 대신에 두 개를 찾습니다 (구문 분석을 더하면 - 이미지 대신 거대한 비디오 파일을 구문 분석하면 문자 그대로 초가 될 수 있습니다).

    개인적으로 이미지 업로드시에만 이미지 크기를 읽고 다른 데이터와 함께 DB에 저장하므로 추가 디스크 액세스가 필요하지 않습니다. 물론 이것은 당신에게 과잉이라고 할 수 있습니다 - YMMV.

    최상의 조언 : 테스트 해보십시오. 그것은 간단한 시험이며 그것은 당신에게 가장 관련성있는 대답을 줄 것입니다.

    관련 문제