2014-07-23 2 views
4

C#에서 ImageMagick 기반 라이브러리 Magick.NET을 사용하면 현재 EXIF ​​프로파일이없는 처리 된 JPEG에 EXIF ​​메타 데이터를 추가 할 수 있습니다. 프로파일을 만들려고 시도는 모두 실패 :Magick.NET을 사용하여 EXIF ​​데이터 생성/쓰기

Object reference not set to an instance of an object. 
at ImageMagick.ExifReader.GetBytes(UInt32 length) 
at ImageMagick.ExifReader.Read(Byte[] data) 
at ImageMagick.ExifProfile.SetValue(ExifTag tag, Object value) 

:

var newExifProfile = image.GetExifProfile(); 
if (newExifProfile == null) 
{ 
    newExifProfile = new ExifProfile(); 
} 
newExifProfile.SetValue(ExifTag.Copyright, "test"); 

ExifProfile는 하나 .SetValue()가 호출 될 때마다 예외를 생성 제공하지 스트림 또는 바이트 배열을 받아 다른 생성자가 Magick.NET을 사용하여 EXIF ​​데이터를 쓰는 방법은 무엇입니까?

답변

5

Magick.NET에서 버그를 발견했으며이 문제는 수정되었습니다 (https://magick.codeplex.com/workitem/1272). Magick.NET의 다음 버전 (6.8.9.601)로 당신이 할 수있을 것입니다 :

using (MagickImage image = new MagickImage("logo:")) 
{ 
    profile = new ExifProfile(); 
    profile.SetValue(ExifTag.Copyright, "Dirk Lemstra"); 

    image.AddProfile(profile); 

    image.Write("logo.withexif.jpg"); 
} 
+0

안녕하세요, 관련 질문은 - 더 사용자 정의 IPTC 필드를 사용하는 방법은 무엇입니까 (# 220에서 numers # 240) Magick.NET과 함께? 프로필을 추가하면 220 위의 기존 IPTC 레코드가 제거되고 언론 기관은 20 개 이상의 사용자 지정 IPTC 필드를 자주 사용합니다. ByteArray 수준에서 수동으로 형식을 지정하면 작동합니까? – yosh

+0

https://magick.codeplex.com/discussions 또는 https://github.com/dlemstra/Magick.NET/issues에서 토론을 시작할 수 있습니까? 좀 더 질문이 있습니다. 그리고 메시지에 예제를 만들 수 있습니까? – dlemstra

관련 문제