programing

파일 이름에서 이미지 크기를 얻는 방법

randomtip 2021. 1. 17. 10:49
반응형

파일 이름에서 이미지 크기를 얻는 방법


FPN = "c : \ ggs \ ggs Access \ images \ members \ 1.jpg"라는 파일이 있습니다.

이미지 1.jpg 의 크기를 얻으려고하는데 로드하기 전에 이미지 크기가 유효한지 여부를 확인하고 이미지의 너비 또는 높이가 0보다 작거나 같으면 팝업 "이미지가 올바른 형식이 아닙니다."와 같은 메시지

누구든지 제발 도와 줄 수 있습니까?


System.Drawing.Image img = System.Drawing.Image.FromFile(@"c:\ggs\ggs Access\images\members\1.jpg");
MessageBox.Show("Width: " + img.Width + ", Height: " + img.Height);

Wpf 클래스 System.Windows.Media.Imaging.BitmapDecoder는 전체 파일을 읽지 않고 메타 데이터 만 읽습니다.

using(var imageStream = File.OpenRead("file"))
{
    var decoder = BitmapDecoder.Create(imageStream, BitmapCreateOptions.IgnoreColorProfile,
        BitmapCacheOption.Default);
    var height = decoder.Frames[0].PixelHeight;
    var width = decoder.Frames[0].PixelWidth;
}

업데이트 2019-07-07

내가 정확하게 기억한다면, 몇 달 후 exif 이미지를 다루는 것이 조금 더 복잡하다는 것을 알게되었습니다. 어떤 이유로 아이폰은 보통이 아닌 회전 된 이미지를 저장하고 "표시하기 전에이 이미지를 회전"exif 플래그를 설정합니다.
또한 gif는 매우 복잡한 형식이라는 것이 밝혀졌습니다. 프레임에 전체 gif 크기가 없을 수 있으며 오프셋 및 프레임 크기에서 집계해야합니다.

그래서 대신 ImageProcessor사용 하여 모든 문제를 처리했습니다. 일부 브라우저는 exif를 지원하지 않고 어쨌든 회전 된 버전을 저장해야했기 때문에 전체 파일을 읽는지 확인하지 않았습니다.

using (var imageFactory = new ImageFactory())
{
    imageFactory
        .Load(stream)
        .AutoRotate(); //takes care of ex-if
    var height = imageFactory.Image.Height,
    var width = imageFactory.Image.Width
}

참조 URL : https://stackoverflow.com/questions/6455979/how-to-get-the-image-dimension-from-the-file-name

반응형