$ cpanm Image::ExifTool
제 경우에는 문제없이 설치 되었습니다.
#!/usr/bin/env perl
use strict;
use warnings;
use Image::ExifTool;
my $exifTool = new Image::ExifTool;
$exifTool->ExtractInfo('a.jpg');
print "Software: ", $exifTool->GetValue('Software'), "\n";
$exifTool->SetNewValue( 'Software', 'Image::ExitTool' );
if ( $exifTool->WriteInfo( 'a.jpg', 'b.jpg' ) ) {
print "success for WriteInfo\n";
$exifTool->ExtractInfo('b.jpg');
print "Software: ", $exifTool->GetValue('Software'), "\n";
}
~/Desktop $ ls -l *.jpg
-rw-r--r-- 1 hshong hshong 87482 7월 23 2008 a.jpg
-rw-r--r-- 1 hshong hshong 87468 6월 14 14:28 b.jpg
WriteInfo
를 사용했을 때 바뀐 메타데이터 입니다.
BlueTRC
FileAccessDate
FileInodeChangeDate
FileModifyDate
FileName <- 제가 바꾼거
GreenTRC
RedTRC
Software <- 제가 바꾼거
Image::ExifTool
에서는 MIME type 이 application/dicom
은 DICOM
은 write
기능이 지원되지 않습니다. 문서에도 그렇고 테스트 결과도
그렇습니다. 다른 write 가 지원되는 포맷과 어떻게 다른지 탐구생활
해보도록 하겠습니다.
두개의 파일의 다른점은 128 byte 뒤 4byte 가
D I C M
과0 0 0 0
로 달랐습니다.위 코멘트와도 연관이 있는 것이, 아무거나 128바이트오고 그뒤에
DICM
의 조건으로 dicom 포맷의 유효성을 판단하기 때문입니다.어떤 조건인지는 모르겠지만
DICOM.pm
에DICM
을 넣는 부분을 추가하고 테스트 했더니 성공했습니다만 새로운 버그를 발견했습니다.Metadata 의 length 가 6자리 였으면 6자리로 밖에 안바뀝니다.(
123456
=>abcdefg
로 바꿨을때,abcdef
로 변경)바뀐 content-value 에 따라 length, content-value 를 파일을 재구성 해서 만들어야 하지만 그런 처리가 안되고 단순히 content-value 를 치환 하는것이 아닌가 생각됩니다.