2013-03-26 2 views
3

PHP로 실제 이미지를로드하지 않고 이미지 정보를 가져올 수 있습니까? 제 경우에는 높이와 너비가 필요합니다.PHP - 이미지 (높이 및 너비)를로드하지 않고 정보 얻기

이 코드를 사용하여 디렉토리에서 이미지를 가져올 수 있습니다. 나는 이미지의 URL을 echo하고 JS로 가져온다.

<?php 

    $directory = "./images/photos/"; 
    $sub_dirs = glob($directory . "*"); 
    $i = 0; 
    $len = count($sub_dirs); 
    foreach($sub_dirs as $sub_dir) 
    { 
     $images = glob($sub_dir . '/*.jpg'); 
     $j = 0; 
     $len_b = count($images); 
     foreach ($images as $image) 
     { 

      if ($j == $len_b - 1) { 
       echo $image; 
      } else { 
       echo $image . "|"; 
      } 

      $j++; 

     } 

     if ($i == $len - 1) { 
     } else { 
      echo "|"; 
     } 
     $i++; 
    } 

?> 
+0

http://php.net/manual/en/function.getimagesize.php –

+1

정보를 원한다면 이미지를 사용해야합니다. 그러나 정보를 텍스트 타일에 저장할 수는 있습니다. 나중에 액세스 할 수있는 것과 같은 것입니다. – Jonast92

+0

@Philip PHP는 사용자가 넘겨주는 모든 이미지를 파싱 할 것입니다. 그러나 Cal의 대답은 함수가 크기를 가져 와서 변수를 변수에 할당 할 때 메모리가 해제된다는 사실 때문입니다. 내가 너를 지키면 나는 그의 방법을 고수해야한다. –

답변

7

getImageSize()

이미지의 유형에 따라 최소한의 작업을 수행합니다. 예를 들어, GIF 이미지의 높이/너비가 머리글에 저장됩니다. 매우 쉽게 액세스하고 읽을 수 있습니다. 그래서 이것은 함수가 파일로부터 그 정보를 얻는 방법입니다. JPEG의 경우 SOFn 마커를 사용하여 조금 더 작업해야합니다.

이 정보에 액세스하는 가장 빠른 방법은 새 정보가 업로드 될 때마다 파일 크기 데이터베이스를 유지하는 것입니다.

현재 상황. 현재 이미지 파일을 모두 가져 와서이 함수로 크기를 얻은 PHP 스크립트를 작성한 다음 나중에 사용할 수 있도록 데이터베이스에 정보를 삽입하는 것이 좋습니다.

+0

좋은 설명에 감사드립니다. – Philip

5

"로딩하지 않음"이란 의미에 따라 다릅니다.

내장 된 getimagesize()이 작업을 수행합니다.

list($w, $h) = getimagesize($filename); 
+0

나는 수천 개의 이미지를 가지고 있는데, 이미지를로드해야한다면 이미지에 대한 정보를 얻기 전에 오래 걸릴 것입니다. – Philip

+0

"로드"는 무엇을 의미합니까? 크기를 알아 내기 위해서는 이미지의 바이트를 (분명히) 봐야합니다. 파일이나 데이터베이스의 크기를 캐싱하는 것에 대해 이야기하고 있습니까? 귀하의 질문은 매우 모호합니다. – Cal

+0

나는 "크기"에 관심이 없다. 단지 너비와 높이에만 관심이있다. 나는 파일의 크기를 잡는 것에 대해 이야기하고 있습니다. 정확한 Jpeg. – Philip

2
프로그래밍 방식으로 이미지를 얻을 자바 스크립트를 사용하여 치수를 확인하실 수 있습니다

...

var img = new Image(); 
img.onload = function() { 
    alert(this.width + 'x' + this.height); 
} 
img.src = 'http://www.google.com/intl/en_ALL/images/logo.gif'; 

이미지가 마크 업의 일부가 아닌 경우에 유용 할 수 있습니다)

2

너비 'n'높이 정보를 텍스트 파일에 저장하고 나중에로드 할 수 있습니다.

2
list($width, $height, $type, $attr) = getimagesize($_FILES["Artwork"]['tmp_name']); 

사용하십시오.