문제

내가 찾고 싶은 높이/폭의 이미지가 디스크에 열지 않고,그것을 가능한 경우(에 대한 성능).

Windows 속성에 대한 자세한 이미지와 같은 정보가 포함되 너비,높이 조금 깊이,etc., 드는 저장하는 메타데이터에서 파일이 어딘가에.할 수 있는 방법 이 정보에 액세스?

도움이 되었습니까?

해결책

몇 가지 유래에 대한 질문을 읽는 방법 EXIF 정보에서 이미지와 같은: 을 얻는 방법 EXIF 파일에서 데이터를 사용하여 C#

다른 팁

System.Drawing.Image 클래스를 사용하십시오.

        Image img = Image.FromFile(fileName);
        ImageFormat format = img.RawFormat;
        Console.WriteLine("Image Type : "+format.ToString());
        Console.WriteLine("Image width : "+img.Width);
        Console.WriteLine("Image height : "+img.Height);
        Console.WriteLine("Image resolution : "+(img.VerticalResolution*img.HorizontalResolution));

        Console.WriteLine("Image Pixel depth : "+Image.GetPixelFormatSize(img.PixelFormat));
        Console.WriteLine("Image Creation Date : "+creation.ToString("yyyy-MM-dd"));
        Console.WriteLine("Image Creation Time : "+creation.ToString("hh:mm:ss"));
        Console.WriteLine("Image Modification Date : "+modify.ToString("yyyy-MM-dd"));
        Console.WriteLine("Image Modification Time : "+modify.ToString("hh:mm:ss"));

가장 쉬운 방식으로 이러한 작업을 수행하는,가정의 이미지가 스퀘어는 파일의 크기는 바이트 단위이 광장을 가지고 루트입니다.이 될 것입니다 당신의 너비와 높이입니다.

256 bytes = 16px x 16px

:-)

또는,당신이 시도할 수 있는 이미지를 읽기의 EXIF 정보를 사용하여 이 codeplex 라이브러리

Windows는 파일 시스템의 특별한 장소에 저장하지 않습니다. 속성 창은 단순히 이미지 파일 자체에서 읽습니다.

.NET은 전체 이미지를로드하지 않고 이미지에서 메타 데이터 만 읽을 수있는 기능을 제공한다고 생각하지 않습니다. 제한된 수의 다른 이미지 형식 (예 : JPEG, PNG 및 GIF 만) 만 다루고 있다면 이미지 헤더에서 크기를 읽는 것이 너무 어렵지 않아야합니다.

반면에 많은 이미지 형식을 처리해야한다면 아마도 유닉스 file 공익사업. 그것은 많은 다른 이미지 형식의 크기를 감지하고 부팅하기에 빠릅니다.

이미지의 너비와 높이를 얻으려면 (본질적으로, 메타 데이터) 해야합니다 파일을 열고 어떤 종류의 헤더 정보를 구문 분석하고 원하는 것을 얻으십시오.

모든 색상/비트 맵 정보, 헤더 만 읽을 필요는 없습니다.

이것은 Windows가 실제로 실행하지 않고 응용 프로그램 파일에서 아이콘을로드 할 수있는 방식과 같은 방식입니다.

Windows 탐색기가 표시하는 속성을 읽으려면 사용할 수 있습니다. Microsoft Shell 컨트롤 및 자동화 요소. 이것의 장점은 이미지 헤더를 구문 분석하기위한 타사 라이브러리 (COM 객체가 이미 존재 함)가 필요하지 않으며 다양한 형식으로 작동한다는 것입니다.

샘플 코드는 관련 질문.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top