저는 C#으로 jpeg 사진을 통해 작은 프로그램을 작성하고 싶습니다. 예를 들어, 날짜순으로 날짜순으로 정렬합니다 (damating ...).).C#을 사용하여 파일에서 EXIF 데이터를 얻는 방법
누군가가 프로그램과 같이 날짜와 시간 또는 노출과 같은 EXIF 데이터를 비교적 쉽게 얻을 수 있다는 것을 알고 있습니까? 감사합니다.
저는 C#으로 jpeg 사진을 통해 작은 프로그램을 작성하고 싶습니다. 예를 들어, 날짜순으로 날짜순으로 정렬합니다 (damating ...).).C#을 사용하여 파일에서 EXIF 데이터를 얻는 방법
누군가가 프로그램과 같이 날짜와 시간 또는 노출과 같은 EXIF 데이터를 비교적 쉽게 얻을 수 있다는 것을 알고 있습니까? 감사합니다.
JPEG 이미지에서 EXIF 데이터를 얻기가 포함됩니다
이미지 클래스는 PropertyItems 및 PropertyIdList 특성을 가지고 있습니다 ... 이미지 날짜, 카메라 모델명, 노출 등 관련된 다양한 정보를 포함한다. 당신은 그들을 사용할 수 있습니다.
그것은 읽기 전용이므로 새 이미지에 아무 것도 추가 할 수 없습니다. – TigrouMeow
새 이미지에 Image.SetPropertyItem (PropertyItem) 함수를 사용하십시오. –
체크 아웃이 metadata extractor입니다.
Java로 작성되었지만 C#으로 포팅되었습니다.
자바 버전을 사용하여 날짜 및 모델 태그를 기반으로 내 jpeg 파일의 이름을 바꾸는 작은 유틸리티를 작성했습니다. 매우 사용하기 쉽습니다.
편집메타 데이터 추출 너무 .NET을 지원합니다. 이미지 및 비디오에서 메타 데이터에 액세스하기위한 매우 빠르고 간단한 라이브러리입니다.
그것은 완전히 그건
var directories = ImageMetadataReader.ReadMetadata(imagePath);
// print out all metadata
foreach (var directory in directories)
foreach (var tag in directory.Tags)
Console.WriteLine($"{directory.Name} - {tag.Name} = {tag.Description}");
// access the date time
var subIfdDirectory = directories.OfType<ExifSubIfdDirectory>().FirstOrDefault();
var dateTime = subIfdDirectory?.GetDateTime(ExifDirectoryBase.TagDateTime);
EXIF뿐만 아니라, IPTC, XMP 및 JPEG, PNG, GIF, PNG, ICO, WebP 형식, PSD, 포함 파일 형식의 메타 데이터의 많은 다른 유형을 ... 지원 NuGet 및 code's on GitHub을 통해 제공됩니다.
다음은 similar SO question에 대한 링크입니다. 여기에는 닷넷의 "Reading, writing and photo metadata"에 대한이 좋은 기사를 가리키는 답변이 있습니다.
[ExifLib - A Fast Exif Data Extractor for .NET 2.0]을 가리키는 ** 매우 좋은 답변 ** [여기에 있습니다] (https://stackoverflow.com/q/10494796/2803565) (https : //www.codeproject.com/Articles/36342/ExifLib-A-Fast-Exif-Data-Extractor-for-NET-2-0) –
제안 된 것처럼 일부 타사 라이브러리를 사용하거나 수동으로 수행 할 수 있지만 가장 간단하고 유연한 방법은 아마도 .NET에서 기본 제공되는 기능을 사용하는 것입니다. 더 참조 :
또한 속성 목록이 사실 EXIF 값과 직접적으로 일치하지 않는다는 것을 지적해야합니다. EXIF 자체는 ID가 중복되는 여러 테이블에 저장되지만 .NET은 모든 것을 하나의 목록에 넣고 일부 항목의 ID를 다시 정의합니다. 그러나 정확한 EXIF ID를 신경 쓰지 않는다면 .NET 매핑을 사용하면됩니다.
Bitmap.PropertyItems에 액세스하려면 전체 파일을 메모리로 읽어야합니다. Bitmap을 만들고 PropertyItems에 액세스하고 다른 작업을 수행하지 않으면 XPerf를 사용하여 앱이 이미지 파일에 액세스하여이를 메모리에 모두 읽음을 확인할 수 있습니다. 내 컴퓨터의 경우, 3.4Mb 파일은 PropertyItems를 통해 EXIF를 얻으려면> 700ms의 IO 비용이 필요합니다. (. – Tristan
비교해 보면 Picasa의 PhotoViewer는 터치하는 각 파일에서 20-30k를 읽습니다. 나는 그 물건을 쓴 남자/여자와 채팅하고 싶다. (데이터는 XPerf를 사용하여 PhotoViewer의 시작을 프로파일 링하여 수집했다.) – Tristan
@Tristan : 유용한 정보,하지만 이미지 자체도 원하지 않고 얼마나 자주 이미지 메타 데이터에 액세스 하는가? ? 몇 가지 사례가있을 것이라고 확신하지만 대다수의 경우 이미지를 표시하거나 데이터로 작업하고 동시에 메타 데이터라고 생각합니다 – jrista
명령 줄 도구 ExifTool by Phil Harvey은 많은 독점 RAW 형식을 비롯하여 수십 개의 이미지 형식으로 작동하며 EXIF, GPS, IPTC, XMP, JFIF 등 다양한 메타 데이터 형식을 조작 할 수 있습니다.
매우 사용하기 쉽고 가볍고 인상적인 응용 프로그램입니다.
ExifTool은 놀라운 lib/tool이지만 Perl로 작성 되었기 때문에 C#에서 사용하려면 외부 프로세스를 시작해야합니다. –
BCL에 내장 된 이미지 메타 데이터 지원은 매우 제한적입니다. 저는 2002 년부터 Exif와 같은 메타 데이터로 작업 해 왔으며 단순하지만 강력한 [.NET 용 데이터 추출 라이브러리] (https://github.com/drewnoakes/metadata-extractor-dotnet)를 보유하고 있습니다. –